看了下TI提供的FLASH烧写文档《Serial Flash Programming of C2000™ Microcontrollers 》
貌似我理解的不是很清楚? 首先是要在C++编译那个应用程序,然后通过命令行输入命令? 我现在生成我要的.TXT文件,比如说LED,那怎么将LED.TXT加载到CPU呢?这个FLASH内核的作用还不是很理解。以前的2000是用上位机烧写的。那么我现在是不是可以通过TI提供的应用程序来做啊? 还有没其他资料可以看的。
或者请教下TI工程师,比较细致的步骤。
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
看了下TI提供的FLASH烧写文档《Serial Flash Programming of C2000™ Microcontrollers 》
貌似我理解的不是很清楚? 首先是要在C++编译那个应用程序,然后通过命令行输入命令? 我现在生成我要的.TXT文件,比如说LED,那怎么将LED.TXT加载到CPU呢?这个FLASH内核的作用还不是很理解。以前的2000是用上位机烧写的。那么我现在是不是可以通过TI提供的应用程序来做啊? 还有没其他资料可以看的。
或者请教下TI工程师,比较细致的步骤。
C:\ti\controlSUITE\device_support\~Utilities\serial_flash_programmer
需要看的是这个资料,f2837xD_fw_upgrade_example.txt
不用C++编译那个程序,直接通过cmd命令行调用那个指令就好。那个指令就是利用TI设计好的上位机软件serial_flash_programmer.exe 把TXT格式的目标文件传送到CPU里面。
那个kernel的作用可以理解为bootloader程序,包含通信功能和flash 烧写算法。上位机利用芯片ROM中的出厂boot程序将kernel加载到内部RAM,然后CPU跳转到该kernel运行,接收上位机发送过来的目标文件TXT中的数据,再写入到FLASH中。
你可以看一下TRM文件中ROM章节中的boot资料。
ERIC
参考我在这个帖子的回复,不过那是F28035的,不知有多大差别。你说的延迟是不存在的,烧录速度也不慢,尤其是内核,例程的内核根本不是烧录,只是载入内存,程序又小,根本不花时间,只是下载完了要等待几秒钟,等待内核程序完全启动,例程里好像是等待了5秒。这些例程,不知是我眼拙,还是确实如此,反正光靠这个是不能正常使用的,于真正意义上的“远程更新“也是很难满足需求的。
http://www.deyisupport.com/question_answer/microcontrollers/c2000/f/56/p/123613/346487.aspx#346487
步骤都是一样的。就是烧写内核进去,然后烧写应用程序。用的都是基于vc上位机,它这个上位机根据命令行格式选择相应的设备。
后来我发现问题是我的底板串口的管脚映射和TI默认的不一样,这个有点奇怪,然后我根据手册内容,在相关寄存器(地址0XD000)里面修改,发现在调试下模式能下更改boot mode ,它这个SCI Boot mode分两组管脚。我改成了另外一组。【断电重启这个地址是不是不能更改的?只能在仿真模式下进行了?】然后 串口通讯正常了,烧写正常,但是烧写成功后一直卡在启动过程。
我觉得TI的这个串口烧写 和boot rom的开发有点绕 觉得不方便用 其实我是想后面做CAN烧写的
Eric Ma 你好
我有几个问题:
1.使用上位机软件serial_flash_programmer.exe 把TXT格式的目标文件传送到CPU里面,这种情况下,BOOT MODE是不是要配置为SCI,即GPIO72=0,GPIO84=1?如果是这样的话,不就与GPIO84、85作为SCI的RX、TX冲突了嘛?
2.如果我想要用F2837xD_sci_flash_kernels这个例程俩烧写程序,如何操作呢,可以列一下烧写步骤嘛?
3.TI官方有提供关于bootrom例程吗?我在D:\Softwares\CCSv6.2\controlSUITE\libs\utilities\boot_rom\F2837x_revb找到的相关例程用不了,例程有错误。
看了很多您的对相关问题的回答,还是无从下手。
谢谢!
1.使用上位��软件serial_flash_programmer.exe 把TXT格式的目标文件传送到CPU里面,这种情况下,BOOT MODE是不是要配置为SCI,即GPIO72=0,GPIO84=1?如果是这样的话,不就与GPIO84、85作为SCI的RX、TX冲突了嘛?
Eric: 不冲突,BOOT mode配置的GPIO口,只是在上电后,芯片跑到ROM里面的引导代码判断这两个脚的电平,判断过去,进入对应的引导模式,这两个脚的功能就释放了。
2.如果我想要用F2837xD_sci_flash_kernels这个例程俩烧写程序,如何操作呢,可以列一下烧写步骤嘛?
Eric: 查看这个路径C:\ti\controlSUITE\device_support\~Utilities\serial_flash_programmer
这个例程是TI做的SCI bootloader算法,即利用boot mode,将芯片配置成SCI boot模式,然后通过PC端的上位机软件serial_flash_programmer.exe 将这个kernel写进RAM中,kernel接管后续flash烧写的工作, 它将烧写对应的用户程序。
3.TI官方有提供关于bootrom例程吗?我在D:\Softwares\CCSv6.2\controlSUITE\libs\utilities\boot_rom\F2837x_revb找到的相关例程用不了,例程有错误。
ERIC: BOOTROM例程里面,应该也只是如何利用串口,将kernel接收后放到RAM而已,然后运行。
如果你要在线升级的功能,可以看我之间发过的F28M35的例子。如果接收BOOT MODE设置IO口这种模式的话,那就用第2点的这个就好。
http://www.deyisupport.com/question_answer/microcontrollers/c2000/f/56/t/121859.aspx