| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> <IXM6ULL芯片学习记录> 汇编配置C语言环境点亮LED -> 正文阅读 |
|
[C++知识库]<IXM6ULL芯片学习记录> 汇编配置C语言环境点亮LED |
汇编配置C语言环境点亮LED灯前言熟悉汇编配置C语言环境,跳转到main函数中,执行C语言代码,实现功能。 ARM架构之处理器运行模式(CPSR)需要注意的是,该寄存器不属于IMX6ULL,而是属于ARM,对应的需要查找ARM的手册,而不是IMX6ULL的寄存器手册。 CPSR,全称为 汇编程序编写1、栈的类型,以便配置栈的位置(SP指针)栈的类型有两种,向上增长型与向下增长型
(图片摘自:https://blog.csdn.net/asn1111/article/details/78135439) 如侵删! IXM6ULL芯片的栈是向上增长型。所以栈区的位置不能指定为0x8000 0000开始,这里设置栈区的起始地址为0x8020 0000, 到结束地址就是0x8000 0000,一共0x0020 0000的大小,即为2MB,所以SP指针需要配置为0x8020 0000 2、arm特殊寄存器CPSR配置特性CPSR寄存器,属于一个特殊的寄存器,汇编访问特殊寄存器,需要使用特殊的指令来访问寄存器。
3、代码实现
代码分析第1行 .global _start :
第3行: _start:
第5~9行: 使用MRS与MSR来操作CPSR特殊寄存器,配置CPSR为SVC模式。 ARM的BIC指令,作用是将指定的位置0,如代码中需要将CPSR的bit0-4清零,需要用BIC命令操作0x1F,即bit0-4填为11111,BIC就会将0-4bit清零。相当于C语言中的 ORR指令,为或操作。需要将CPSR的bit0-4 设置为0b10011,相当于C语言中的 第11行: ldr sp,=0x80200000
第12行: b main
需要注意的是,由于IMX6ULL选择了内部ROM启动方式。最终生成固件的时候会添加芯片基本资源的配置二进制到.bin文件的头部中,IMX6ULL的启动方式会读取头部信息,对基本资源进行初始化。所以这里是没有初始化DDR,直接进行了SP指针的DDR地址赋值。 正常的流程对SP指针赋值DDR地址之前,是需要在汇编中初始化DDR的,需要mark一下这个特殊操作。 C语言编写在汇编初始化完成后,跳转到main函数, 接下来就是C语言的天下了。 1、编写led.h
led的头文件主要是使用宏定义,volatile修饰符创建地址指针,方便后续对寄存器的配置。 2、编写led.c
实现的应用层功能是闪烁LED灯。 Makefile的编写
|
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 3:57:37- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |