完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
这看起来像一个编译器错误,但是我希望有一个合理的检查来确保我没有做愚蠢的事情。PIC16F1459允许通过地址0x2000-0x29AF对通用RAM进行线性访问。放置一个横跨两个库的数组,加上后一个库中的任何其他变量,给出“不可能”为数组找到空间“错误”。这里是银行4和5的测试案例,但是我在我试过的每个银行都看到了这个错误。我在MPLAB X 3.55中用XC8 v1.43(与v1.42的结果相同)使用所有默认设置创建了一个PIC16F1459项目。
|
|
相关推荐
7个回答
|
|
为什么使用绝对寻址?
|
|
|
|
绝对寻址应该已经工作,因为16F1459线性地址是0x2000 - 0x23 EF。
|
|
|
|
16F1459上的通用RAM的一个子集是双端口,与USB引擎共享,并且USB缓冲区必须位于双端口子集中。o从长远来看,但这更复杂,尤其是当快速成型的时候。另外,这似乎是一个bug,所以我想报告它,试图修复它。
|
|
|
|
我特别喜欢这一部分:
|
|
|
|
也许你太努力了。编译器可以处理任何包含变量的库的绝对寻址的细节。以下是我对它的看法:很久以前,在一个遥远的星系中……我使用PIC16F1459创建了一个基于USB的项目。我从一个与当时使用该处理器的Low Pincount USB开发板一致的自制的面板开始。现在……有许多USB MPLABX示例,使用XC8,最近版本的MLA(Micro.Libraries for.)发行版,我从CDC Se开始我的小测试电路里的RialMaultProject(它工作得非常出色)。我使用的是稍微老一点的MLA版本,但“Current Version”v2017-03-06具有相同的信息。无论如何,我查阅了源代码,找到了……在apps/u***/device/cdc_._emulator/固件/low_pin_count_u***_development_kit_pic16f1459.x/._address_..h:然后,在framework/u***/src/u***_device_cdc.c中,我看到了……EP_SIZE内容的定义位置留给感兴趣的任何人作为练习……底线,取决于您的实际应用程序和项目是如何组织的,您可以做一些更改,但是MLA Works Fo中的内容我(你的里程可能会有所不同)。有一些有用的东西是一个很好的后退位置。如果你想尝试绝对寻址那些跨越银行边界的数组,那就去吧。[编辑]如果你想,你可以使用线性寻址,但是不管你使用哪种地址方案,在为跨页的多个数组分配存储空间(具有绝对寻址)时你必须小心。E边界。我看不出使用您的地址比使用示例程序中的地址有什么价值。以下原因我认为它是一个编译器“特性”,不一定是一个可报告的bug(尽管您当然可以报告它)。
|
|
|
|
哈哈…甚至没有注意到!这是直接从MPLAB X模板(工具-GT;模板-gt;C & gt;C主文件)。
|
|
|
|
嗨,我不确定为什么添加“额外”变量会触发这种情况,但是它看起来不对,不值得发送bug报告。杰夫。
|
|
|
|
只有小组成员才能发言,加入小组>>
5234 浏览 9 评论
2026 浏览 8 评论
1950 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3200 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2253 浏览 5 评论
771浏览 1评论
659浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
588浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
669浏览 0评论
571浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-19 15:22 , Processed in 1.637667 second(s), Total 90, Slave 74 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号