nvision 发表于 2012-6-18 15:07:54

几个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执行操作。谢谢。

Excellence 发表于 2012-6-19 08:22:50

帮顶。。。。。
没玩这些。。。

以后有时间玩玩。

nvision 发表于 2012-6-19 11:13:26

在网上搜到了相关信息,自己来解答。
下面代码片段可以在内部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);

liubinghui 发表于 2012-6-19 13:24:27

没玩这些。路过。

sbgavin 发表于 2012-6-26 15:10:43

{:biggrin:}正在学习

leo_advance 发表于 2012-6-28 09:36:36


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的扇区的。

sbgavin 发表于 2013-5-13 10:34:35

请问一个32K的扇区可以分8次写(每次写4K)吗?如果可以请指点在下一二。

王智 发表于 2013-5-28 22:26:55

才刚接触这款IC,路过!

pangbin4 发表于 2014-10-11 10:10:28

不错的分析!学习了
页: [1]
查看完整版本: 几个LPC1768的问题,求解答,谢谢。