几个LPC1768的问题,求解答,谢谢。
1. 之前LPC2368我们可以通过设置MEMMAP来设置不同的启动方式。a. 那LPC1768下如何设置。是否也可以设置成其他方式启动?
b. 是否可以从片内Flash非0地址处启动。如何设置?之前在论坛上发现只要设置这个寄存器就可以了:SCB->VTOR = APP_ENTRY_ADDRESS & 0x1FFFFF80;
是设置后就可以直接从APP_ENTRY_ADDRESS启动吗?我试了下,没有成功啊?
2 .之前一直在4KB大小上IAP的读写和擦除,因为LPC1768很多扇区都是32KB的,而IAP最大只能对4KB操作,如何来IAP执行操作。谢谢。 帮顶。。。。。
没玩这些。。。
以后有时间玩玩。 在网上搜到了相关信息,自己来解答。
下面代码片段可以在内部flash任意地址上启动应用程序。
//跳转程序。
__asm void boot_jump( uint32_t address ){
LDR SP, ;Load new stack pointer address
LDR PC, ;Load new program counter address
}
//关键部分,设置寄存器
SCB->VTOR = APP_ENTRY_ADDRESS & 0x1FFFFF80;
//在内部flash的APP_ENTRY_ADDRESS处启动应用程序。
boot_jump(APP_ENTRY_ADDRESS);
没玩这些。路过。 {:biggrin:}正在学习
1. 是否可以从片内Flash非0地址处启动。如何设置?之前在论坛上发现只要设置这个寄存器就可以了:SCB->VTOR = APP_ENTRY_ADDRESS & 0x1FFFFF80;
是设置后就可以直接从APP_ENTRY_ADDRESS启动吗?我试了下,没有成功啊?
答:不可以,芯片上点后会从0x0000000处获取向量表(section .intvec ),然后获取PC值,跳转到PC处执行程序。所以对于单系统来说,“APP_ENTRY_ADDRESS ”可以为非零地址,而“section .intvec ”必须从零开始。
2 .之前一直在4KB大小上IAP的读写和擦除,因为LPC1768很多扇区都是32KB的,而IAP最大只能对4KB操作,如何来IAP执行操作。谢谢。
答:我没记错的话IAP是可以擦出32K的扇区的。 请问一个32K的扇区可以分8次写(每次写4K)吗?如果可以请指点在下一二。 才刚接触这款IC,路过! 不错的分析!学习了
页:
[1]