首页 > 代码库 > arm:判断是从nand启动还是从norflash启动
arm:判断是从nand启动还是从norflash启动
//int bBootFrmNORFlash(void) :判断是否从norflash启动。//ret==1 :norflash启动//ret==0 :nandflash启动。(或者是jlink调试的情况。)//该函数应用范围有限,只针对于bootloader最初的stage1。int bBootFrmNORFlash(void){ volatile unsigned int *pdw = (volatile unsigned int *)0; unsigned int dwVal; /* * 无论是从NOR Flash还是从NAND Flash启动, * 地址0处为指令"b Reset", 机器码为0xEA00000B, * 对于从NAND Flash启动的情况,其开始4KB的代码会复制到CPU内部4K内存中, * 对于从NOR Flash启动的情况,NOR Flash的开始地址即为0。 * 对于NOR Flash,必须通过一定的命令序列才能写数据, * 所以可以根据这点差别来分辨是从NAND Flash还是NOR Flash启动: * 向地址0写入一个数据,然后读出来,如果没有改变的话就是NOR Flash *这仅仅针对于初始阶段,norflash启动时,最终也要将程序加载到SDRAM中运行。因此该函数应用范围是有局限性的。 */ dwVal = *pdw; *pdw = 0x12345678; if (*pdw != 0x12345678) { return 1; } else { *pdw = dwVal; return 0; }}
arm:判断是从nand启动还是从norflash启动
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。