通过SWD协议如何把Bootloader烧写至RAM
Hi,大家好想请教大伙些问题,以下是问题的相关背景
1、本人用的是富士通的MB9B218S(CortexM3内核的);
2、参照该论坛的《浅谈SWD协议》后,现已可以成功访问任意寄存器包括内核调试寄存器;
3、富士通序列的单片机跟SMT32的架构有点不一样,对于STM32单片机按道理我可以访问任意寄存器后,我只需通过SWD对储存控制器进行配置即可把数据烧写至STM32的ROM中;但是富士通序列的单片机的储存控制器只是让单片机进入编程模式,然后用它自带的嵌入式编程算法(没有寄存器来配置这些算法)来烧写数据至ROM;因此,我只能通过SWD把Bootloader烧写至RAM(我知道用编译器可以做到),在RAM中运行Bootloader程序对FLash进行编程擦除;
4、我通过SWD把Bootloader烧写至RAM的步骤:
Halt住CPU、使能调试、设置xPSR为0x01000000、烧写至RAM(RAM地址是0x20000000~0x20010000)、设置PC为0x200000000、设置MSP为0x20010000、运行CPU;
问题一、
由于是32位长度访问,当我向RAM写数据时,比如Bootloader数据的前面四个数据从低位到高位的顺序是(0x48、0x49、0x50、0x51),又由于SWD协议的读和写数据都是从低位开始的,所以当我向RAM的起始地址0x20000000开始写数据时是不是把0x51504948写进去?如何不是?该如何写?
问题二、
如果问题一的方法是对的,那么为什么烧写之后,Flash还是没有擦除的迹象?是不是通过SWD把Bootloader烧写至RAM的步骤有误?
请各位大神,指点迷津,谢谢!{:cry:} 浅谈SWD协议
没找到这个帖子了... 求文档 <<浅谈SWD协议>> abbott.yang 发表于 2015-8-1 19:07
求文档
这个你可以看《CortexM3权威指南》,里面有讲到{:smile:} xiaolong_ba 发表于 2015-8-1 21:50
这个你可以看《CortexM3权威指南》,里面有讲到
多谢.
<<CortexM3 技术参考手册>>里面要详细点 楼主,你的项目搞定没?
我要把SWD相关的帖子都顶上去 楼主,你的项目做的怎么样了,能提供一下思路吗? 我是这样搞得:串口或以太网(4g)把IAP和APP接收存在外部flash。发个升级指令,把IAP读入RAM再运行,iap功能删除芯片FLASH,把新APP写入芯片FLASH。 楼主是否可以分享一下通过RAM烧写flash经验
页:
[1]