你好,
在二次引导装载程序工程中,将图像加载到SRAM时为何SUPPORT_AN_B_001不使能,如果使能就是从OTP中加载吗?
从spi flash中加载和使能SUPPORT_AN_B_001有何不同?
如果我想把图片标题和产品标题的地址改变不使用0 x7052 0 x7051的话是否能实现?
/************** 基于- b - 001图像/快速引导装载程序部分 **************/
//定义if
//如果基于AN-B-001的映像在SPI flash中刻录,并且引导加载程序正在从OTP运行
#undef SUPPORT_AN_B_001 //为辅助引导加载程序启用它
/ /从spi flash中加载函数如下:
int spi_loadActiveImage(空白)
{
//启动SPI接口
spi_flash_peripheral_init ();/ / spi GPIO接口引脚初始化
spi_flash_release_from_power_down ();//如果flash被应用程序设置为关闭电源,则需要
# ifdef SUPPORT_AN_B_001
uint8 AN001Header [AN001_SPI_HEADER_SIZE];
//检查AN-B-001报头
SpiFlashRead((unsigned long)&AN001Header, (unsigned long) 0, (unsigned long)AN001_SPI_HEADER_SIZE);
if (AN001Header[0]==0x70 && AN001Header[1]==0x50){//如果引导加载程序从SPI flash运行,它必须被禁用
SpiFlashRead(SYSRAM_BASE_ADDRESS, (unsigned long)AN001_SPI_STARTCODE_POSITION, (unsigned long) (AN001Header[6]<<8 | AN001Header[7]));
返回0;
}
其他的
{
#如果定义(ALLOW_NO_HEADER)
//从内存偏移0加载0x7F00字节。
SpiFlashRead (SYSRAM_BASE_ADDRESS 0 0 x7f00);
返回0;
# endif / /定义(ALLOW_NO_HEADER)
}
//在SPI flash中没有发现AN-B-001有效图像。返回错误。
返回1;
其他#
spi_flash_size_init ();/ /读取设备id,配置spi flash大小
返回loadActiveImage ();/ /加载img
# endif
}
你好,
580芯片内部有一个ROM启动,
ROM引导的功能是会判断OTP中是否有有效固件,有则将代码加载到RAM中执行,无则会去各个口(uart, spi奴隶,spi的主人,iic等)去重新加载
我们可将二次引导装载程序放在OTP (flash也行)中,则
芯片上电后,将二次引导装载程序加载到ram中运行,功能是:
1.到指定的地址(该地址可自定义)找到产品标题
2.解析产品标题,获知形象1标题和图片2头的信息
3.将有效的形象加载到ram中执行
使能了- b - 001和不使能的区别,仅是加载固件的方式不同,去深究没有什么意义;建议按照默认的,不使能即可。
产品标题、图片标题、图像的起始地址等的修改,都可通过修改二级引导装载程序的源码来实现。
谢谢您的解答
不客气~