完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
你好,我想在Flash地址X0xC00中设置一个标志。在启动之前,我从BooDouther-main中运行这个代码,它工作。Bootloader占用内存的前2页,页3被保留为状态标志。后来从我的应用程序运行,从地址0x1000到以后,如果我运行相同的代码,Flash地址没有被正确地写入。所以PIC24可以写入到T以外的闪存位置吗?在链接器脚本中定义了程序空间?我使用的是PIC24FJ128GB202
以上来自于百度翻译 以下为原文 Hello, I am trying to set a flag in flash at address 0x00C00. From my bootloaders main before anything starts I run this code and it works. The bootloader takes the first 2 pages of memory and page 3 is reserved for status flags. // Write the new launching flag to memory. NVMCON = 0x4003; uint16_t dataL = 0x01; //lint !e9034 !e712 uint16_t dataH = 0xFFFFU; __builtin_tblwtl(0xBD2C, dataL); //Write the low word to the latch i __builtin_tblwth(0xBD2C, dataH); //Write the high word to the latch (8 bits of data + 8 bits of "phantom data") i+1 disable_interrupts(); __builtin_write_NVM(); while(NVMCONbits.WR == 1U){} NVMCONbits.WREN = 0; enable_interrupts(); Later from my application which runs from addresses 0x1000 to much later, if I run the same code the flash address is not properly written to. So can a PIC24 write to a flash memory location that is outside of the program space defined in its linker script? I am using a PIC24FJ128GB202 |
|
相关推荐
2个回答
|
|
|
|
|
|
它被擦除了。你需要一次擦除一个Flash页面。/ Ruben
以上来自于百度翻译 以下为原文 And it is erased. You need to erase one flash page at a time. /Ruben |
|
|
|
只有小组成员才能发言,加入小组>>
5234 浏览 9 评论
2026 浏览 8 评论
1950 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3201 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2253 浏览 5 评论
771浏览 1评论
659浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
588浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
670浏览 0评论
571浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-20 15:00 , Processed in 1.485513 second(s), Total 81, Slave 64 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号