打印
[PIC®/AVR®/dsPIC®产品]

PIC16代码存放地址问题求教

[复制链接]
1555|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zdy149|  楼主 | 2024-4-26 18:18 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
各位大神,现在使用的是PIC16F15224,代码使用空间DATA 27%(总共512bytes),Program 72%(总共4096bytes),
为什么烧录到单片机内不是连续烧录的呢?我读取到的Program Memory,
他的数据分布在0x000- 0x839,0xCA1-0xFFF,是不是哪里设置错了呀;
烧录器:PICKIT5;
IDE: MPLAB X IDE v6.15;
先谢过各位前辈了

37112662b7ddda6b76.png (22.43 KB )

37112662b7ddda6b76.png

使用特权

评论回复
沙发
wangchangwenqq| | 2024-4-26 20:41 | 只看该作者
PIC就是这样分布的, PIC  18也是一样的,  会在末尾放指令,   

使用特权

评论回复
评论
zdy149 2024-4-27 08:15 回复TA
您好,请教一下有文档描述这个做法吗?例如像arm的《cortex-M3权威指南》这样的书,或者其他什么资料。 
板凳
幸福小强| | 2024-4-26 22:13 | 只看该作者
两端放置方便查询。

使用特权

评论回复
评论
zdy149 2024-4-27 16:40 回复TA
感谢你的回答,请问您知不知道有什么书在描述这种存储结构呢 
地板
zdy149|  楼主 | 2024-4-27 08:16 | 只看该作者
再请教一下,这种情况下,我想读写内部flash保存一些信息,应该保存在哪个地址呢?我是害怕后面程序修改变大,保存的flash地址需要做修改。

使用特权

评论回复
5
qintian0303| | 2024-4-27 14:40 | 只看该作者
数据分布在0x000- 0x839,0xCA1-0xFFF,这样的情况不适合存储不丢失的数据,建议还是外置Flash存储

使用特权

评论回复
评论
zdy149 2024-4-27 14:54 回复TA
明白了,谢谢啦 
6
coody| | 2024-4-27 17:29 | 只看该作者
PIC就是这样变态的存在,30年来我用过超过20个厂家的MCU,最难用的就是PIC的,比如PIC16C56,那么一点内存和ROM还分BANK、PAGE,非常垃圾,2005年后再也不用PIC的了。

使用特权

评论回复
7
lb1057907736| | 2024-4-27 20:35 | 只看该作者
解决你的疑惑,在这个帖子中标记为解决方案的地方,这是编译器决定的。

https://forum.microchip.com/s/topic/a5C3l000000Bpr8EAC/t391265

使用特权

评论回复
评论
zdy149 2024-4-29 08:09 回复TA
感谢 
8
wangchangwenqq| | 2024-5-7 16:59 | 只看该作者
zdy149 发表于 2024-4-27 08:16
再请教一下,这种情况下,我想读写内部flash保存一些信息,应该保存在哪个地址呢?我是害怕后面程序修改变 ...

定义常量数组保护这段区域, 然后定位到绝对地址, 建议大小是擦除页的倍数, 修改时 擦除 再写入, 读取时用前面的绝对地址,  

使用特权

评论回复
评论
wangchangwenqq 2024-5-7 17:04 回复TA
常量数组可以保护这段地址,不被编译器使用, 由于需要读取 flash , 配置位的 读写保护要关闭, 只留代码保护即可 
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

10

帖子

1

粉丝