[原创] SensorTile的boot过程

fyaocn   2017-3-10 16:56 楼主
1、在提供的范例包中,motenv1中已经有了hex文件,可以直接下载到内存。这个过程,体现了L476的启动和内存分配过程。2、首先执行,CleanMotEnv1.bat命令行文件,这个文件执行以下过程。 - 擦除Flash - 把正确的Bootloader写入起始地址 - 把随后的MOTENV1firmware写入随后的一个地址块中 - 把整个文件都写入。这个过程可以用st-link的写入,也可用mbed的drag and drop复制功能。 3、这张图显示了这个循环的过程和地址分布。其中bootloader在0x0800 0000起始地址,随后的MOTENV1在0x0800 4000中开始。分配给OTA的地址不适用在本程序中。 捕获.JPG 4、在这个范例中,起始体现了STM32L4xx的启动过程。在手册中boot有专门的启动位,确定程序启动后的地址。通常都会从flash启动,从0x0800 0000地址启动,并写入文件。对于相对复杂的程序,一般会写入一个firmware,便于程序调用,包括协议栈和专用的HAL包等。而不是通常小容量MCU的顺序分配空间。 在此分享一下使用的过程。 5、随后开始的开发环境使用。原计划采用的mbed不是非常的理想,因为这个芯片是最小的JG系列,而mbed.org中是L476RG系列,这个在管脚上是完全不兼容的,因此,如果移植,还要对照2种芯片的数据,才能很好适用,无形中增大了复杂度,而且也不能预知结果。 最后采用IAR30天评估版本,估计可以了。手册中推荐的Nucleo板载st-link其实不是那么好用。因为,nucleo支持两种驱动,mbed和stlink。如果使用IDE不支持CMSIS-DAP的话,就要把firmware升级为stlink。这个过程并没有一次成功,不能识别出MCU。还好有存货,专用的stlinkv21,连接上就好。 这个这个过程发现其实只要4根线就可以了,其中第5位的是reset,在下载器中,看来是没有用到。可以直接flash和erase。这样就可以省一根线了。 捕获.JPG 本帖最后由 fyaocn 于 2017-3-10 16:57 编辑

回复评论 (5)

谢谢分享 嘿嘿
加油!在电子行业默默贡献自己的力量!:)
点赞  2017-3-10 17:58
没用过NUCLEO默认不是STLINK吗
虾扯蛋,蛋扯虾,虾扯蛋扯虾
点赞  2017-3-10 20:27
引用: littleshrimp 发表于 2017-3-10 20:27
没用过NUCLEO默认不是STLINK吗

我的boot loader更新一过一次,不是出厂原装的啦
点赞  2017-3-11 19:57
NXP的开发板用过CMSIS-DAP 感觉挺好用的 选择不支持的IDE多吗
点赞  2017-3-11 20:56
引用: littleshrimp 发表于 2017-3-11 20:56
NXP的开发板用过CMSIS-DAP 感觉挺好用的 选择不支持的IDE多吗

CMSIS-DAP 是很方便的。不过,另外一个工具强制只用stlink,只好给刷掉了
点赞  2017-3-13 09:56
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复