TI中文支持网
TI专业的中文技术问题搜集分享网站

TMS320C6748 二次BootLoader如何实现?

硬件启动方式:TMS320C6748+SPI NORFLASH ;

现有固件升级方式:现在采用的串口升级固件方式由于升级功能是固件中的一部分,每次升级都会将FLASH中的覆盖掉,如果在升级过程中掉电就存在需要连接仿真器才能升级的问题。如何实现二级Bootloader呢,每次上通过固化的Bootloader来判定是否升级,并将需要升级的application放在另外的一段flash地址中,防止对升级bootloader的覆盖。

《Using the TMS320C6748/C6746/C6742 Bootloader》一文中提到了用AISGen工具可以将多个application生成一个.bin文件,这个功能的意义何在?是为了解决二级Bootloader么?

Shine:

二次bootloader实现的功能如下,具体要自己写代码,我们没有例程可以参考。

1. 判断是否需要升级代码,如果需要升级,通过uart口从host端读取代码并烧写到SPI flash,烧写完成后从flash加载并运行代码。
2. 如果不需要升级,从spi flash加载代码并运行代码。

二次bootloader代码烧写到SPI flash地址0, 应用代码烧写到其他固定地址。

请问哪里有提到"提到了用AISGen工具可以将多个application生成一个.bin文件"?

lingshan lan:

回复 Shine:

1.大概思路如下,建立两个工程,一个bootloader,一个application,两个工程分别用aisgen工具生成bin,bootloader下载到spiflash地址0,应用下载另外的地址,在bootloader跳转中是否还需要设置application的堆栈,复位向量?

直接在bootloader中实现把application搬运到ram中指定地址,直接跳转时是否可行,都是用Aisgen生成的bin

2.文档中提到多个程序可以指定入口地址,这个用处是啥?

Tony Tang:

lingshan lan现有固件升级方式:现在采用的串口升级固件方式由于升级功能是固件中的一部分,每次升级都会将FLASH中的覆盖掉,如果在升级过程中掉电就存在需要连接仿真器才能升级的问题。

你的这个串口升级工具是你自己修改过的吗?如果是,你可以在这个基础上修改成你需要的功能。

lingshan lan如何实现二级Bootloader呢,每次上通过固化的Bootloader来判定是否升级,并将需要升级的application放在另外的一段flash地址中,防止对升级bootloader的覆盖。

这需要你自己在二级boot中软件实现。

lingshan lan《Using the TMS320C6748/C6746/C6742 Bootloader》一文中提到了用AISGen工具可以将多个application生成一个.bin文件,这个功能的意义何在?是为了解决二级Bootloader么?

这个功能更实现不了你要的功能。这只是为了方便烧写,合成一个,只需要烧写一个bin文件就好了。

lingshan lan:

回复 Tony Tang:

我说一下思路,请教一下是否可以实现或者有没有漏掉的:

1.应用程序单独的工程,生成的.out文件用仿真器下载到ram中,在通过ram把这个导出来作为写入flash的应用程序文件(或者用ti官方的有个.out转hex的软件)。

2.bootloader单独的工程,用aisgen工具生成bin文件,在其中实现对应用程序的搬运到RAM中,实现跳转到RAM地址。

有几个问题:1.应用程序生成的方式可以不?2.两个工程的cmd有什么需要注意的?3.bootloader里面是否需要在跳转之前还要进行堆栈,中断等等的处理?

Tony Tang:

回复 lingshan lan:

其实你参考这个串口烧写工具包里的DSP的UBL就好了。

在安装目录下的工程:

OMAPL138\OMAP-L138_FlashAndBootUtils_2_40\OMAP-L138\CCS\UBL_DSP

赞(0)
未经允许不得转载:TI中文支持网 » TMS320C6748 二次BootLoader如何实现?
分享到: 更多 (0)