debug RTEMS生成的stm32f4项目

在使用RTEMS进行STM32F4项目的调试时,遇到debug过程中卡死在semobtain.c的问题。通过观察发现.text段地址错误,原本应为0x08000000但被设置为0x0。经过查找,修改链接文件linkcmds.stm32f4中ROM_INT地址为0x08000000,重新编译并debug成功。此问题已报告给RTEMS开发者。
摘要由CSDN通过智能技术生成

我们一般会使用rtems在source builder生成的工具链里面rtems自带的gdb,arm-rtems4.11-gdb用法跟arm-none-eabi-gdb是一样的。debug的方法可以参考这篇博客

https://blog.csdn.net/zhengyangliu123/article/details/54934719

但是debug依旧不顺利,进入debug过后总是卡死在semobtain.c的一个判断函数里面,更奇怪的是,这个判断函数里面也没有任何循环逻辑。

经过一个中午的乱找和迷茫,我突然发现一个问题,当我debug的时候,会输出.bss .data .text的下载地址,stm32的.text的下载地址都是0x08000000打头的,可是这次是从0x0打头,我决定查看map来看flash地址,可是惊奇地发现rtems居然不生成map文件!?一般只要我们在gcc后面加上相应的参数就行了,可是rtems的gcc是自己的写的,由于不是很清楚rtems这部分内容,所以也不知道怎么下手。这时我想到.text的地址是在链接文件里面写的,所以我们需要找到链接文件。一般链接文件都是ld结尾的,可是居然搜不出来!!什么鬼!链接文件这东西一定有的,我打开了bsp/arm/stm32f4下一个个目录寻找,最后找到了个很可能是的东西,linkcmds.stm32f4。打开一看,发现

MEMORY {
	RAM_INT : ORIGIN = 0x20000000, LENGTH = 128k
	ROM_INT : ORIGIN = 0x000
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值