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.

LM Frash Programer 无法辨认曾经写过芯片

Other Parts Discussed in Thread: TM4C123GH6PZ, LMFLASHPROGRAMMER

新的芯片板子(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

  • LM flash programer 烧录程序的配置如下图,选择TM4C123G lunchpad,已经选择ICDI烧录方式。 

    你提供的图一表示USB没有驱动,你可以更新USB驱动程序。 如果你需要用USB更新程序的话,是利用USB bootload功能,需要确保芯片是空片或应用代码能识别USB并跳转到bootload。

  • 谢谢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的例程。

  • 如此看来,每次修改程序,必须先清空flash,才可以用LMflash软件来下载,没有他法?

  • 分两个方面回答你的问题:

    1.更新程序,当然需要先擦除flash,方能写入。

    2.利用lm flash programmer 是可以用JTAG方式烧录程序,也支持Bootload更新协议。其实在这个过程也存在flash擦除动作。

  • 如果没有JTAG只用USB,对于烧录过芯片可以现实再烧录程序吗?

    而全新芯片,用lm flash programmer 就可以了,对吧。

  • 对全新的芯片,直接用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, 效果一样。

  • 不过PC里看不见相关的USB端口,应该是可以通过usb dfu升级的呀。