概述
ARM裸机开发流程
- 启动方式
- SD卡启动
- SD卡中的程序
- 从程序到SD卡
启动方式
上电后芯片内部固有的一段程序会先通过boot控制引脚从不同的存储器加载程序,即bootloader,bootloader将会初始化ddr,设置堆栈,中断向量表等,最后启动操作系统。
A20 启动方式如图
SD卡启动
#。如果UBOOT_SEL为1将首先检测SD0,那么问题来了,它是如何知道sd卡里面就是程序,而不是其他数据,如果没有辨别机制将导致开机时系统与sd卡不能共用,那么接下来就说说这个检测机制
#。这个检测方式就是在程序前面加一个头部,不同的芯片会有不同的添加工具,当芯片检测到头部,它就会读取运行头部后面的程序,并运行。A20的加头工具,在裸机开发第一节贴出源码和使用方式
#。故,我们只需要写好程序加好头部,下载程序,插入sd卡到芯片。
SD卡中的程序
#。终于芯片可以开始运行我们的程序了,可我们要怎样让程序跑起来呢,直接C语言,<( ‵□′)>豪横,printf(“led1给老子闪起来”); ,⁄(⁄ ⁄ ⁄ω⁄ ⁄ ⁄)⁄它可不鸟你,你还是的按它的来,,,
#。最直接的就是通过用户手册,用汇编控制寄存器,<( ‵□′)>豪横 点灯 如果你愿意,全程.s也,,,没啥问题,
#。如果要简单点,哪就需要先用汇编设置芯片模式,设置堆栈,引导到C语言main函数,然后就可以用C语言写程序了
从程序到SD卡
#。写好了汇编程序,引导的C语言 接下来就需要将程序通过arm-gcc编译,链接最后形成 *.bin文件,然后通过头部添加工具添加头部形成新的 *.bin文件,最后通过dd命令下载bin文件到SD卡,插卡,亮灯。
最后
以上就是丰富荔枝为你收集整理的【ARM从裸机到uboot 1 】基于全志A20ARM裸机开发流程的全部内容,希望文章能够帮你解决【ARM从裸机到uboot 1 】基于全志A20ARM裸机开发流程所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复