完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
我想把DSP使用到的2个2KB的buf挪用出来作为FLASH的BUF但是现在出现了空间溢出问题,希望有能人帮忙解答下为什么
xdata U8 SPI_FLASH_BUF[4096]_at_ 0x2000; 只是警告提示空间超出 而使用 xdata union { struct { U8 dsp_ibuf[2048] _at_ 0x2000; U8 dsp_obuf[2048] _at_ 0x4000; }dsp_buf; U8 SPI_FLASH_BUF[4096]; }un_buf; 就会有下面的提示 *** ERROR L107: ADDRESS SPACE OVERFLOW *** ERROR L105: PUBLIC REFERS TO IGNORED SEGMENT 先谢过大家。 |
|
相关推荐
3个回答
|
|
怀疑你的AT用的有问题,看看DSP内存地址是如何分配的吧。DSP没玩过,呵呵。
|
|
|
|
或许是联合体使用的时候SPI_FLASH_BUF的地址是从结构体dsp_buf.dsp_ibuf地址开始,这样导致其实我的目的没有达到,
联合体内的SPI_FLASH_BUF[4096]或许变成了这样的形式 U8 SPI_FLASH_BUF[4096] _at_ 0x2000;那就导致了0x2000 之后的2048个偏移后还有被SPI_FLASH_BUF[4096]多占用了2048个byte。 这样就变成我定义了U8 SPI_FLASH_BUF[4096+2048] _at_ 0x2000;的空间。 哈哈,好像蛮合理,明天到公司编译下看看U8 SPI_FLASH_BUF[4096+2048] _at_ 0x2000;会是什么情况。 WIN8伤不起啊!!! 感谢原子哥的回复。 |
|
|
|
刚刚试验了下,上面的想法是想当然了正确的原来是得给联合体本身单独开辟一个外部地址给他
xdata union { struct { U8 dsp_ibuf[2048] _at_ 0x2000; U8 dsp_obuf[2048] _at_ 0x4000; }dsp_buf; U8 SPI_FLASH_BUF[4096]; }un_buf _at_ 0x1000; 就是暂时不明白为什么直接定义不行,等下再研究下是否4K空间可用。 |
|
|
|
只有小组成员才能发言,加入小组>>
3311 浏览 9 评论
2994 浏览 16 评论
3493 浏览 1 评论
9058 浏览 16 评论
4087 浏览 18 评论
1178浏览 3评论
605浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
599浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2335浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1896浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 23:59 , Processed in 1.468425 second(s), Total 82, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号