如何走进嵌入式开发[3] -- 烧录bootloader

 在拿到一块空白板子时,我们的bootloader如何烧到FLASH上呢? 一个途径就是通过仿真器,ARM有高级仿真器,高级货是不错,不过我们选择穷人的方式,也是个仿真器,至于是啥,网上一搜一大堆,jlink, openjtag, usb...,东西很多,国内便宜(大家都知道)。按照标准,其实这些叫作适配器,反正就是一接口,连上去就好了,对了,是JTAG接口。

 

以前不懂的时候,以为接上就能烧了?谁来烧呀?CPU烧?烧什么呀? 后来看了文档才知道,这些CPU一般都有个调试模式,在调试模式下,CPU外面多了一层引脚,信号都走这,与JTAG接口通信,我们就可以通过JTAG接口,对CPU进行操作,可读可写。

 

如果我们想读一个寄存器值,我们该发什么信号给CPU呢?这些都在CPU手册上有,我要说的不是这个,我想说的是,前辈已经写了软件来做这些工作,需要啥信号,我们就不用关心了,需要的只是传个命令过去,比如 read addr之类的,这类软件应该很多,我们又选择了 OpenSource的 OpenOCD, 这个软件还是不错了,开发人员很勤奋,maillist天天都有很多邮件。 如果我们的CPU在该软件的支持的范围内,那么我们需要做的事情就是写写配置文件,否则就需要写些CPU支持的 c 代码了。配置文件,主要部分配置CPU,FLASH BANK(地址宽度很重要)等,让CPU能操作FLASH,也就是你得告诉CPU如何工作,其实就是设置寄存器。软件运行起来,需要把CPU挂起,有时候会出现不能挂起的情况(有的是无缘无故,有的是由于reset时的信号不太对,这点一直没弄清楚,jtag信号),暂停MMU,之后就可以烧啦。看着手册大家都能烧。

 

bootloader烧好了,就可以启动了,之后烧内核什么的,似乎大家都是通过bootloader来做的,我也是。

 

BTW:烧录FLASH,还有种 socket 方式,这种FLASH可拆卸,取下来,插到专门烧写器里,也可以完成烧录。其他的方法我也没总结过,也没用过。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值