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.
新的芯片板子(TM4C123GH6PZ),连接PC后,LM Frash Programer 在Manual Configuration, USB DFU 中 可以看到。
写过芯片,LM Frash Programer则看不到。
观察来自PC的信息,写过的芯片的USB由Stellaris变成Gennerric Bulk,所以LM Frash Programer无法辨认。
LM Frash Programer无法辨认芯片,所以谈不上把程序写进去。
请教各位,如何 让LM Frash Programer辨认到已写过芯片,先谢了。
NgLT
谢谢Maka回复,
本人用的是自己的板子,没有ICDI功能,之前的程序是用CCS写的,不知如何清空它,另USB bootload 还没弄懂,不知如何操作,所以有请指点指点,或提供一些链接学学怎么建立USB bootloader
谢谢了。
NgLT
芯片ROM自带bootload功能,如果flash是空,当接入USB设备,会进去USB bootload 功能,即可以下应用程序。
但是如果flash不为空,那会执行应用代码,需要自己在应用代码去跳转。
具体例程在Tivaware example 有。
只要是新的片子,装上usb的驱动后,用LMflash软件,直接就可以连上芯片进行下载就ok了。但是再次想要用usb下载的话,就得烧写boot了,tiva ware下有ek板子的例程,里面就有boot的例程。
分两个方面回答你的问题:
1.更新程序,当然需要先擦除flash,方能写入。
2.利用lm flash programmer 是可以用JTAG方式烧录程序,也支持Bootload更新协议。其实在这个过程也存在flash擦除动作。
对全新的芯片,直接用lm flash programmer通过usb和串口就可以连上下载。你第一次下载的时候,烧写自己写的boot程序,以后就可以通过usb或者串口再次下载了。
谢谢苦行僧,
能否讲细一点,如何“写自己的boot程序”,我一直没走通这个。
请教一下,在boot_demo1.c中:
JumpToBootLoader(void)最后一句
(*((void (*)(void))(*(uint32_t *)0x2c)))();
是什么意思?没看懂。
谢谢。
lung tat ng 说:谢谢苦行僧,
能否讲细一点,如何“写自己的boot程序”,我一直没走通这个。
请教一下,在boot_demo1.c中:
JumpToBootLoader(void)最后一句
(*((void (*)(void))(*(uint32_t *)0x2c)))();
//跳转到bootload的入口地址。
是什么意思?没看懂。
谢谢。
C:\ti\TivaWare_C_Series-2.1.1.71\examples\boards\dk-tm4c123g\boot_usb //这个是USB bootload代码
C:\ti\TivaWare_C_Series-2.1.1.71\examples\boards\dk-tm4c123g\boot_demo2 //这个是APP code
参考此两个代码例程,在tiveware路径下面。
// Return control to the boot loader. This is a call to the SVC
// handler in the boot loader.
//
(*((void (*)(void))(*(uint32_t *)0x2c)))();
我没具体看数据手册,但是安装上面的解释,0x2c应该是SVC的地址。这句的意思应该是直接跳到0x2c的地址处。
通过LMflashprogrammer将boot_usb放0x00,将本人的app放0x2800,上电后app可以跑,不过PC里看不见相关的USB端口。
boot_usb是.bin文件,不知是什么内容。将app直接放在0x00, 效果一样。