1、MDK的下载算法文件FLM,基本都是与地址无法的动态加载,而IAR是支持这种动态加载和绝对地址加载,也就是直接定义到指定地址的算法文件。
2、MDK算法文件对Flash配置信息都是在Device描述符,而IAR则不同,IAR的都是集中在board,mac,flash等文件里面的配置信息。所以使用比FLM算法文件更灵活些。
3、当前正在整合上位机和TOOL的交互,将IAR的board,mac,flash等文件里面的配置信息整合到LUA里面定义。
IAR的算法文件也好,MDK的算法文件也好,主要是都芯片厂家为自己的芯片制作的,方便被MDK和IAR调用。
我这里直接定义一个描述符,将配置信息整理进来即可
[Lua] 纯文本查看 复制代码 IAR_FlashDevice =
{
0x01, -- g_tFLM.Device.Vers 固定值
0x31 -- g_tFLM.Device.DevName[0] 固定值
0x01 -- g_tFLM.Device.DevType 固定值
0x08000000, -- g_tFLM.Device.DevAdr 芯片Flash地址
0x100000, -- g_tFLM.Device.szDev 芯片Flash容量
256, -- g_tFLM.Device.szPage 页大小
0xFF, -- g_tFLM.Device.valEmpty 填充数值
20000, -- g_tFLM.Device.toErase 擦除时间
20000, -- g_tFLM.Device.toProg 编程时间
两个一组,设置Sector Size和addr,两个0xFFFFFFFF表示结束
4, -- 4组
0x04000, -- g_tFLM.Device.sectors[0].szSector
0x000000, -- g_tFLM.Device.sectors[0].AddrSector
0x10000, -- g_tFLM.Device.sectors[1].szSector
0x010000, -- g_tFLM.Device.sectors[1].AddrSector
0x20000, -- g_tFLM.Device.sectors[2].szSector
0x020000, -- g_tFLM.Device.sectors[2].AddrSector
0xFFFFFFFF, -- g_tFLM.Device.sectors[3].szSector
0xFFFFFFFF, -- g_tFLM.Device.sectors[3].AddrSector
}
|