完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
gcc 生成的代码会导致致命崩溃:
// app.c #include "user_interface.h" #include "osapi.h" void user_init(void) { uint32 ip = 17082560; os_printf("%d.%d.%d.%d\n", IP2STR(ip)); } SDK ver: 1.5.3(aec24ac9) compiled @ Apr 18 2016 13:20:18 phy ver: 9281, pp ver: 9.9 Fatal exception 28(LoadProhibitedCause): epc1=0x4020103c, epc2=0x00000000, epc3=0x00000000, excvaddr = 0x0104a8c0,depc=0x00000000 (user_init 位于 0x40201020) gcc 标志: xtensa-lx106-elf-gcc flags=-c -Wall -Wextra -Os -g -Wpointer-arith -Wno-implicit-function-declaration -Wl,-EL -fno-inline-functions -fno-exceptions -nostdlib -mlongcalls -mtext-section-literals -falign-functions=4 -MMD -std=gnu99 -ffunction-sections -fdata-sections 重新定义 IP2STR 时,问题消失: void user_init(void) { uint32 ip = 17082560; #define IP2STR(addr) (uint8_t)(addr & 0xFF), (uint8_t)((addr >> 8) & 0xFF), (uint8_t)((addr >> 16) & 0xFF), (uint8_t)((addr > > 24) & 0xFF) os_printf("%d.%d.%d.%d\n", IP2STR(ip)); 当 IP2STR 从 .text.user_init 部分的 ip_addr.h( ) 反汇编中引用时: 00000000 : 0: 000000 生病 3: a8c000 excw 6: c10104 excw 9: 04a8 l32i.n a10, a4, 0 b: a8c201 l32r a0, fffea314 e: c30104 excw 11: 04a8 l32i.n a10, a 4, 0 13: 000001 l32r a0, fffc0014 ... 00000018 : 18: f0c112 addi a1, a1, -16 1b: fffa31 l32r a3, 4 1e: fffa41 l32r a4 , 8 < user_init-0x10> 21: fffa51 l32r a5, c 24: fffb61 l32r a6, 10 27: 3109 s32i.n a0, a1, 12 29: fff521 l32r a2, 0 2c: 000332 l8ui a3, a3, 0 2f: 000442 l8ui a4, a4, 0 32: 000552 l8ui a5, a5, 0 35: 000662 l8ui a6, a6, 0 38: fff701 l32r a0, 14 3b: 0000c0 callx0 a0 3e: 3108 l32i.n a0, a1, 12 40: 10c112 addi a1, a1, 16 43: f00d ret.n 当 IP2STR 被重新定义时( ) .text.user_init 部分的反汇编: 00000000 : ... 00000008 : 8: fffe21 l32r a2, 0 b: f0c112 addi a1, a1, -16 e: c0a032 movi a3, 192 11: a8a042 movi a4, 168 14: 450c movi.n a5, 4 16: 160c movi.n a6, 1 18: 3109 s32i.n a0, a1, 12 1a: fffa01 l32r a0, 4 1d: 0000c0 callx0 a0 20: 3108 l32i .n a0, a1, 12 22: 10c112 addi a1, a1, 16 25: f00d ret.n 关于这里可能发生的事情的任何见解? |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
944 浏览 0 评论
1671 浏览 0 评论
请问一下我想用ESP8685直接替换ESP8266而不用写程序,可以让ESP8685直接通过之前ESP8266的外挂的flash运行程序吗
1330 浏览 1 评论
1233 浏览 1 评论
5015 浏览 2 评论
为blufi_device设置自定义名称,但是无法修改,为什么?
1252浏览 4评论
请问ESP32-S2-WROOM怎么获得ESP32-S2外接FLASH的唯一序列号?
927浏览 3评论
2333浏览 3评论
ESP-IDF的VScode插件的build按钮点击会报错的原因?
2526浏览 3评论
ESP-Jumpstart例程中第5个工程:5_cloud连接报错是哪里的问题?
1051浏览 2评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 00:07 , Processed in 0.976827 second(s), Total 69, Slave 52 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
561
