完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
当使用 xtensa 工具链 (GCC) 链接 ESP8266 的应用程序时,我收到以下错误消息:
代码:全选/home/user/.arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/1.20.0-26-gb404fb9-2/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld: src/ARTApp/ARTApp.out section `.text' will not fit in region `iram1_0_seg' 请不要因为给定路径中的“arduino”而感到困惑。我只是在使用工具链,而不是框架。但是,我在这里编译/链接的代码是一些没有说明任何特定链接的现有代码。我的胶水代码有一个典型的入口点: 代码:全选void ICACHE_FLASH_ATTR user_init() { /* calling my code here */ } 我是否必须为我的所有函数提供 ICACHE_FLASH_ATTR 才能使它们进入闪存? |
|
相关推荐
1个回答
|
|
这个错误意味着你的代码中 .text 部分的大小超过了存储器区域 iram1_0_seg 的大小限制。这个问题可能会导致链接失败,因为编译器无法将所有代码放入 iram1_0_seg。
要解决这个问题,你可以尝试以下方法: 1. 检查你的代码,看看哪些代码可以缩小,或者可以使用更高效的算法来替换原来的算法。这可以帮助缩小 .text 部分的大小,从而使其适合 iram1_0_seg。 2. 调整存储器区域的大小。你可以尝试增加 iram1_0_seg 的大小,这需要在链接时使用参数“-Wl,-Ttext,0x40200000”或其他适当的地址来告诉编译器将 .text 部分放入扩展的 iram1_0_seg 存储区域中。 3. 如果你的代码确实太大,无法适应 iram1_0_seg 或扩展的存储器区域,那么你可以考虑使用外部存储器,如SPI Flash,将一部分代码放入其中。这需要使用类似于esp_alt_flash的库来实现。 |
|
|
|
只有小组成员才能发言,加入小组>>
407浏览 6评论
339浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
322浏览 5评论
322浏览 4评论
310浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-16 21:53 , Processed in 1.144404 second(s), Total 75, Slave 61 queries .
Powered by 电子发烧友网
© 2015 www.ws-dc.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号