【ARM从裸机到uboot 1 】基于全志A20

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卡,插卡,亮灯。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值