Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
RT-Thread Nano
STM32CubeIDE设置-eentry参数后static变量不会在entry()调用前初始化
发布于 2019-09-25 16:01:52 浏览:2073
订阅该版
各位大神,最近基于Nano的程序越写越大,免费版Keil的32KB限制已经盖不住了,转用STM32CubeIDE。编译通过后,按照components.c中的提示,将-eentry参数加到linker上,刷写固件到板子上,通过单步跟踪可以确认入口已经成功切换成了entry()函数,然而rt_object_init()失败。仔细检查,发现rt_object_container[]未初始化。另外用简单的static int var = 0测试,发现在entry()被调用前,static变量是没有被初始化的。去掉-eentry参数,入口回到main()后,则可以观察到static变量是已经在main()调用前初始化了的。 有点懵,请各位指点迷津。 程序工程是用STM32CubeIDE生成的,RT-Thread Nano是用源码移植的,ldscript用的是STM32CubeIDE自动生成的。
查看更多
6
个回答
默认排序
按发布时间排序
antfire
2019-09-26
这家伙很懒,什么也没写!
看来没有用STM32CubeIDE的同道啊,只好自己研究了。 刚仔细看了.ld文件,原本的入口是Reset_Handler,看Cube生成的Startup下的引导代码中的Reset_Handler,里面果然有初始化bss的部分,初始化之后才调用main入口。如果用-eentry将入口改成entry(),Reset_Handler中的初始化代码就调用不到了。 粗暴地将引导代码中调用main改成了entry,去掉-eentry参数,问题就解决了。
eddylin
2019-09-26
这家伙很懒,什么也没写!
是的,我之前也发现了,主要是现在改用macOS了,而且keil编译是真的慢(尤其用5的编译器),所以改用IDE。我的解决方法跟你是一样的……
antfire
2019-09-26
这家伙很懒,什么也没写!
>是的,我之前也发现了,主要是现在改用macOS了,而且keil编译是真的慢(尤其用5的编译器),所以改用IDE。 ... --- 可惜这个解决方案不优美啊。Cube改一下ioc就会覆盖改过的代码和配置,只能用git还原。
eddylin
2019-09-26
这家伙很懒,什么也没写!
不然不要用USER_MAIN这个功能就好,自己的main函数把entry那段东西复制过来就是了
winxos
2019-09-26
这家伙很懒,什么也没写!
你cubeide编译不会出错吗,没遇到变量名冲突的问题吗?
antfire
2019-09-26
这家伙很懒,什么也没写!
>你cubeide编译不会出错吗,没遇到变量名冲突的问题吗? --- 也遇到了重复定义的错误。 创建一个cconfig.h文件,里面写上: #define HAVE_SIGVAL 1 #define HAVE_SIGEVENT 1 #define HAVE_SIGINFO 1 然后编译的参数加上HAVE_CCONFIG_H和RT_USING_NEWLIB即可解决问题。
撰写答案
登录
注册新账号
关注者
0
被浏览
2.1k
关于作者
antfire
这家伙很懒,什么也没写!
提问
1
回答
6
被采纳
0
关注TA
发私信
相关问题
1
求高手指点,RTThread下nanosleep()函数功能如何实现?在线等啊
2
RTT1.2.2在新塘Nano130KE3BN的移植中始终出现栈溢出的问题
3
官方能否出一个nano在mdk下移植finsh到stm32的教程
4
从裸机开始,创建一个RT-Thread Nano系统工程
5
Nano版如何启用shell
6
项目从RTT 2.x NANO移植到 RTT 3.x ENV 环境
7
nano 版本有没有集成到 IAR 中啊?
8
关于MDK5的RT-THREAD NANO中添加MSH组件的例程
9
rtt_nano版本,源代码在哪里下载啊?
10
RTT Nano 在keil 使用C++11 的问题
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
RT-thred的stm32h723对应bsp包CubeMX添加其他外设报错
2
RT-Thread中的time溢出问题,时间戳溢出,解决方法
3
ART-PI使用env驱动ETH网卡,pc和板子可以ping通
4
SystemView线程名字不显示
5
只用网页也能跑RT-Smart 无门槛腾讯Cloud studio + smart-build快速构建
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
DMA
USB
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
I2C_IIC
ESP8266
UART
cubemx
WIZnet_W5500
ota在线升级
PWM
BSP
flash
freemodbus
packages_软件包
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
编译报错
中断
Debug
rt_mq_消息队列_msg_queue
keil_MDK
ulog
SFUD
msh
C++_cpp
MicroPython
本月问答贡献
RTT_逍遥
8
个答案
2
次被采纳
三世执戟
7
个答案
1
次被采纳
KunYi
6
个答案
1
次被采纳
winfeng
2
个答案
1
次被采纳
chenyaxing
2
个答案
1
次被采纳
本月文章贡献
catcatbing
2
篇文章
5
次点赞
swet123
1
篇文章
3
次点赞
YZRD
1
篇文章
2
次点赞
Days
1
篇文章
2
次点赞
阳光的掌控者
1
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部