完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
大家好:我正在处理一个应用程序,它要求对PIC24FJ256GA406上的程序空间进行写操作,并且它没有按照我所期望的方式运行。我有在PIC24FJ128GA010上运行的代码,但是类似的代码似乎在406部分上不能工作。我知道010支持单字写,而406需要双字写。然而,我期望如果我把0xFFFF写到第二个单词,我可以模拟单词写操作,通过执行一系列双词写操作,将第二个单词设置为0xFFFFFF。这似乎会导致损坏的数据(注意:我在每个WR操作之后等待NVMCONbits.WR完成等待。不幸的是,这似乎会导致损坏的内存写入。G SET_WORD_ADDR(添加器);u builtin_tblwtl(0,数据);u builtin_tblwt(0,0x00FF);_builtin_tblwtl(2,data2,data2);u builtin_ttblwt_tblwt(2,0x00FF);u builtin_builtin_tttttblwt(2,data2,数据2);u builtin_builtin_tblwttin_tblwt_tblwt(2,0x00FFFF(2,0x00FFFF);_runtime_config_config_config_flash_flash_flash_write_write_write__builtin_disi(5);//禁用中断5循环NVMKEY=0x55;//为闪存访问写必需的KEY值NVMKEY=0xAA;NVMCONbits.WR=1;//激活擦除操作asm(“NOP”);//为时间延迟asm(“NOP”)要求两个nop;//轮询WR位,直到完成(NVMCONbits.WR!单词写函数是:静态void runtime_config_flash_write_word(uint32_t addr,uint16_t data){uint16_t word2;word2=0xFFFFFF;runtime_config_flash_write_double_word(addr,data,word2);}同样,我在010部分上运行代码(以修改的形式),因此基本的concept有效,但似乎不起作用的是顺序双字写入,其中新的开始地址是之前通过上一个操作写入的0xFFFFFF。二元化格式。有什么建议吗?谢谢。-T
|
|
相关推荐
1个回答
|
|
不要像那样用C语言写NVMKEY寄存器。MCU要求执行汇编器指令的准确顺序,而不要干预其他指令。不幸的是,使用C编译器(即使进行了所有优化)也不能保证它不会在其他代码中以该顺序滑动。e中断,但这与生成的代码有关,与运行时中断无关。当然,这可能与您的问题没有任何关系!苏珊
|
|
|
|
只有小组成员才能发言,加入小组>>
5160 浏览 9 评论
1998 浏览 8 评论
1927 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3170 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2225 浏览 5 评论
729浏览 1评论
613浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
503浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
628浏览 0评论
526浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 15:00 , Processed in 1.270268 second(s), Total 78, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号