完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
使用的是GD32W51x的芯片,不优化没有问题,开启O1、O2或Og优化就会单板起不来。 如果不打断点gdb跟上去,会有各种不同的错误调用栈,但都会报signal trap。 如果在rt_hw_board_init开始处打断点,gdb跟上去运行,就可以正常启动。 看了下汇编,水平有限,也没看出啥问题: 1、启动.s调用entry()函数 Zerobss: 2、在entry函数中调用各初始化函数,优化掉了对rtthread_startup的调用 08007430 [url=home.php?mod=space&uid=2666770]@Brief[/url] This function will call all levels of initialization functions to complete
/
3、对于rt_hw_board_init函数的调用: void icache_enable()
|
|
相关推荐
3个回答
|
|
不用重新发,在原来的基础上修改即可。
|
|
|
|
多谢指导,通过使用__attribute((optimize("O0"))) 和 pragma GCC optimize ("O0") 指定特定的函数不优化的方式,解决了这个问题。
找到的函数在GD32固件库的系统时钟相关的system_gd32w51x.c文件里。 但是还是不太明白,为什么优化会有问题? |
|
|
|
可以对比一下具体哪些指令不同,可能是等待失效了。
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
794 浏览 0 评论
4650 浏览 0 评论
如何使用python调起UDE STK5.2进行下载自动化下载呢?
2588 浏览 0 评论
开启全新AI时代 智能嵌入式系统快速发展——“第六届国产嵌入式操作系统技术与产业发展论坛”圆满结束
2945 浏览 0 评论
获奖公布!2024 RT-Thread全球巡回线下培训火热来袭!报名提问有奖!
31650 浏览 11 评论
73036 浏览 21 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-24 18:19 , Processed in 0.595623 second(s), Total 74, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号