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

6746的NOR FLASH的bootload问题

目前在做6713到6746的程序移植,关于二级bootload想要咨询,我们使用的是NOR FLASH的boot方式,6746介绍的NOR FLASH的boot模式中有一种是AIS方式,想要咨询下面几个问题:

1)NOR FLASH BOOT有三种模式,需要通过设置The NOR boot configuration word register中的METHOD段来确定到底是使用NOR FLASH中的哪一种,从数据手册上看见:

For this boot mode, the bootloader configures EMIFA for 8-bit access and reads the first word from the NOR Flash. This first word indicates if the NOR Flash should be accessed in 16-bit or 8-bit mode, as well as which boot method to be used.

感觉这个NOR boot configuration word register是在NOR FLASH的第一个字里,这样理解对吗?如果是对的,那么这个初始是怎么写进NOR FLASH中的?

2)使用AIS工具来实现boot,是否只需要把编译完成的目标代码使用AIS工具包装一下,就变成可以直接烧写的二进制文件了?

3)以前编写6713的二级bootload代码时,需要指定把代码从NOR FLASH搬移到哪个地址,使用AIS工具好像没有地方设置这个目标地址,那么我怎么指定把NOR FLASH中的代码搬移到L2 ram或者是搬移到片外的DDR中?

Tony Tang:

xiaoan li

1)NOR FLASH BOOT有三种模式,需要通过设置The NOR boot configuration word register中的METHOD段来确定到底是使用NOR FLASH中的哪一种,从数据手册上看见:

For this boot mode, the bootloader configures EMIFA for 8-bit access and reads the first word from the NOR Flash. This first word indicates if the NOR Flash should be accessed in 16-bit or 8-bit mode, as well as which boot method to be used.

感觉这个NOR boot configuration word register是在NOR FLASH的第一个字里,这样理解对吗?如果是对的,那么这个初始是怎么写进NOR FLASH中的?

[TT] 你的理解是对的,工具AISGEN已经将这个字放在AIS文件头了。如果你不是用AIS模式,则在写flash开始时写入就好了。

2)使用AIS工具来实现boot,是否只需要把编译完成的目标代码使用AIS工具包装一下,就变成可以直接烧写的二进制文件了?

[TT] 是的。这种方式简单方便,可以在AIS文件里加入芯片初始化配置,没有代码大小限制,可以直接boot到DDR。

3)以前编写6713的二级bootload代码时,需要指定把代码从NOR FLASH搬移到哪个地址,使用AIS工具好像没有地方设置这个目标地址,那么我怎么指定把NOR FLASH中的代码搬移到L2 ram或者是搬移到片外的DDR中?

[TT]C6713 NOR boot是boot到片上内存,且规定只能从片上内存开始处运行,大小有限制,boot的格式是内存image,简单说就是内存的拷贝,所以这个image是没有格式的。而AIS里数据的组织方式类似于boot table,section的地址,长度信息都从.out里提取出来放在AIS文件里(源头是在cmd文件里分配的),ROM bootloader根据这些信息将之搬到相应的地址去。而C6713的image里是没有这些信息的。这一块的区别很大。legacy模式类似于C6713的,只是在flash的首地址加了一个配置字。

xiaoan li:

回复 Tony Tang:

谢谢您的回复,关于6746的NOR BOOT模式还有几个相关问题咨询您:

1)如果使用AIS NORBOOT模式来实现bootload,只需要在应用程序对应的cmd文件中定义好某段代码存放在某个地址段即可,举例说可以把某个函数放在片内L2 RAM中,把另一个函数放在片外DDR中,只要定义好CMD文件,在bootload的时候就会自动把相应的代码搬移到相应的地址去,这样理解是否正确?

2)如果使用legency NORBOOT模式来实现bootload,是否有相应的二级bootload相关的资料?与6713的二级bootload方式一致吗?是否也需要使用类似hex6x.exe的工具把out文件转换为相应可烧写的文件?

3)TI是否提供legency NORBOOT模式下二级bootload的例程?

谢谢!

Tony Tang:

回复 xiaoan li:

xiaoan li1)如果使用AIS NORBOOT模式来实现bootload,只需要在应用程序对应的cmd文件中定义好某段代码存放在某个地址段即可,举例说可以把某个函数放在片内L2 RAM中,把另一个函数放在片外DDR中,只要定义好CMD文件,在bootload的时候就会自动把相应的代码搬移到相应的地址去,这样理解是否正确?

是的。在AISgen里填上正确的DDR时序参数,就可以在boot时用上DDR。

xiaoan li2)如果使用legency NORBOOT模式来实现bootload,是否有相应的二级bootload相关的资料?与6713的二级bootload方式一致吗?是否也需要使用类似hex6x.exe的工具把out文件转换为相应可烧写的文件?

二级bootloader是一个软件的概念,用来搬运用户的应用代码,所以你的C6713上用的方法是可以用到C6746上的,除了一点,在flash的开始写入配置字.

xiaoan li3)TI是否提供legency NORBOOT模式下二级bootload的例程?

没有,但有问题可以解答。

changsen zhao:

回复 Tony Tang:

想把生成的AIS文件烧入到C6748 的外部NOR FLASH中,是按照地址把AIS文件写入到NOR FLASH的起始地址0x60000000中么?

Tony Tang:

回复 changsen zhao:

是的,从对应的CS开始地址开始写就行了。

TI不是提供了烧写工程了吗?里面有源码啊。

changsen zhao:

回复 Tony Tang:

在startware里么?有写NOR FLSAH的么?谢谢啊

Tony Tang:

回复 changsen zhao:

从下面链接里下载。

http://processors.wiki.ti.com/index.php/Serial_Boot_and_Flash_Loading_Utility_for_OMAP-L138

changsen zhao:

回复 Tony Tang:

里面有源码还就是一个软件啊?

Tony Tang:

回复 changsen zhao:

上面链接下载的包里有源码。

starterware里是只有一个软件sfh.exe。

changsen zhao:

回复 Tony Tang:

您好,我打算写一个自举模式的nor flash 启动,请问跳转到main函数之前的c_int00()这个函数需要自己写么?还是自动生成的啊?

赞(0)
未经允许不得转载:TI中文支持网 » 6746的NOR FLASH的bootload问题
分享到: 更多 (0)