Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
RT-Thread一般讨论
新移植RTT到AT91SAM9X35遇到堆栈指针错位问题
发布于 2013-02-17 15:15:36 浏览:4004
订阅该版
前些天想把RTT移植到AT91SAM9X35上,用的IDE是IAR,参考原来weety兄的SAM9260模板,结合ATMEL提供的芯片驱动做了一个项目,在ddram里面调试,但初始化完成后,当系统调用rt_hw_context_switch_to试图进行第一次任务调用时,发现处于最高优先级的timer任务的sp中的堆栈指针地址处于CSTACK的外面,于是紧接着就触发了data abort的例外,很是郁闷,始终找不到原因,恳请各位老大帮忙一起看看。 IDE中报警 Sun Feb 17, 2013 15:12:51: The stack pointer for stack 'CSTACK' (currently 0x20011C00) is outside the stack range (0x20012C58 to 0x20016C58) 通过单步跟踪,发现timer声明以及rt_thread_init和startup时候确实本身的sp指针位置已经在CSTACK的范围之外,为0x20011BF8,这就是为什么当调调度器调用timer的时候 ,指针就指向了CSTACK界外。因此我是怀疑还是堆栈声明或分配时有问题,但又不知道问题到底在什么地方,因此发上来请高手们帮忙一起看看。谢谢!! 附上存储区分配文件,希望能有用,需要的话可以上传整个项目文件夹 Finsh打印出的信息是这样的 ``` -- SAM9XX5-EK -- Compiled: Feb 17 2013 15:03:38 -- | / - RT - Thread Operating System / | 1.1.0 build Feb 17 2013 2006 - 2012 Copyright by rt-thread team Execption: r00:0x20011bf8 r01:0x2000aa88 r02:0x00000000 r03:0x20011a3c r04:0x00000200 r05:0x00000000 r06:0x01080801 r07:0x00000001 r08:0x00000002 r09:0x00000000 r10:0x00000000 fp :0x0000000a ip :0x0000000a sp :0x656d6974 lr :0x00000072 pc :0x00000000 cpsr:0x00000000 data abort thread - timer stack: thread pri status sp stack size max used left tick error -------- ---- ------- ---------- ---------- ---------- ---------- --- tidle 0xff ready 0x00000044 0x00000100 0x00000044 0x00000020 000 timer 0x08 ready 0x00000044 0x00000200 0x00000044 0x0000000a 000 tshell 0x14 ready 0x00000044 0x00001000 0x00000044 0x0000000a 000 init 0x50 ready 0x00000044 0x00000800 0x00000044 0x00000014 000 shutdown... (0) assert failed at rt_hw_cpu_shutdown:189``` 下载附件 [ddram.rar](https://oss-club.rt-thread.org/uploads/3290_1b5065f736c8f3d7124ed593b05688f8.rar) 下载附件 [IAR v0.0.2.rar](https://oss-club.rt-thread.org/uploads/3290_10c4b3048b7e4e0b00fad62088a1d891.rar)
查看更多
7
个回答
默认排序
按发布时间排序
knight_hu
2013-02-17
这家伙很懒,什么也没写!
项目文件也传上来吧,方便有软件的兄弟们查看,谢谢!
knight_hu
2013-02-17
这家伙很懒,什么也没写!
相当有意思,换成keil以后,居然跑起来了,不同主要有两点 1.启动文件换成了weety的SAM9260的startup_rvds 2.存储分配换成了keil软件分配到ddram空间,堆栈空间由软件自动分配 对系统理解还不深刻,继续研究去了
prife
2013-02-17
这家伙很懒,什么也没写!
珍惜生命,远离IAR。真不知道IAR哪里好...
aozima
2013-02-18
调网络不抓包,调I2C等时序不上逻辑分析仪,就像电工不用万用表!多用整理的好的文字,比截图更省流量,还能在整理过程中思考。
>珍惜生命,远离IAR。真不知道IAR哪里好... --- IAR确实难用,不过楼主的这个问题建议楼主可以深入研究。
knight_hu
2013-09-11
这家伙很懒,什么也没写!
后来终于搞出来了,应该是mmu搞的鬼,应该是之前启用了mmu,而又忘记把相应外设的寄存器在mmu中声明,所以程序一使用他就触发例外了
Cold
2018-04-24
这家伙很懒,什么也没写!
LZ,移植RTT到arm9有没有什么参考的文档呢?移植好的例子有好多了,但是arm9的移植文档好像比较的少
撰写答案
登录
注册新账号
关注者
0
被浏览
4k
关于作者
knight_hu
这家伙很懒,什么也没写!
提问
35
回答
63
被采纳
0
关注TA
发私信
相关问题
1
有关动态模块加载的一篇论文
2
最近的调程序总结
3
晕掉了,这么久都不见layer2的踪影啊
4
继续K9ii的历程
5
[GUI相关] FreeType 2
6
[GUI相关]嵌入式系统中文输入法的设计
7
20081101 RT-Thread开发者聚会总结
8
嵌入式系统基础
9
linux2.4.19在at91rm9200 上的寄存器设置
10
[转]基于嵌入式Linux的通用触摸屏校准程序
推荐文章
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
TinyUSB Demo运行教程
2
RT-Thread学习大礼包一键带走!
3
freemodbus从机调试说明
4
【1024】瑞萨 RA 系列 BSP 制作与适配最新版本的 Keil 、 RSC、固件,较新的 FSP
5
基于 RT-Thread 星火一号开发板的俄罗斯方块
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
ART-Pi
FinSH
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
WIZnet_W5500
ota在线升级
UART
cubemx
PWM
flash
packages_软件包
freemodbus
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
msh
SFUD
keil_MDK
rt_mq_消息队列_msg_queue
ulog
C++_cpp
at_device
本月问答贡献
用户名由3_15位
10
个答案
1
次被采纳
KunYi
4
个答案
1
次被采纳
踩姑娘的小蘑菇
2
个答案
1
次被采纳
bernard
1
个答案
1
次被采纳
rv666
1
个答案
1
次被采纳
本月文章贡献
出出啊
1
篇文章
2
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
1
篇文章
4
次点赞
crystal266
2
篇文章
2
次点赞
whj467467222
2
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部