美文网首页RTOS和GUI_基于英飞凌tc2x及stm32开发板
booloader中外部flash的代码实现方法--Apple的

booloader中外部flash的代码实现方法--Apple的

作者: applecai | 来源:发表于2022-02-16 21:43 被阅读0次

一,前言

之前已经完成了windows及单片机的自定义bootloader联调,现在只要修改下变成标准协议即可,对于单片机我手里有很多代码可以移植。所以先搞定单片机端。那么需要制作一个外部flash的代码。以前我仅用过flash代码为数组中的值。等于别人给的lib库。自己没有动手制作过外部flash驱动代码。

二,设计

看懂了别人做的外部flash驱动需要的必备项。其实就是将函数都打包到结构体数组中,类似与linux的驱动,属于c原因的面向对象设计法。然后将数组放入固定地址。那么我也自己动手做一个,区别就是芯片不同,那么驱动代码不同而已,框架及设计思路是一样的。
如下需要特别注意
1.option使能c99。
2.s文件要删除。否则报错没有main函数。
3.主要是散转链接表要自定义下。特别是first来定义结构体放首段,且结构体要加const修饰符。

LR_IROM1 0x08007000 0x1000  {    ; load region size_region
  ER_IROM1 0x08007000 0x1000  {  ; load address = execution address
   *.o (.flashVar, +First)
   .ANY (.flashFunction)
   .ANY (+RO)
  }
  RW_IRAM1 0x20000000 0x00020000  {  ; RW data
   .ANY (+RW +ZI)
  }
}

三,总结

检查map文件,确认定义的结构体数组对象就放在了首地址。单片机的代码设计已完成,接下来就是找个周末先对单片机进行单独联调了。

相关文章

网友评论

    本文标题:booloader中外部flash的代码实现方法--Apple的

    本文链接:https://www.haomeiwen.com/subject/zwodlrtx.html