完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我在移植RT Thread 到一颗ARM926EJS 内核的时候,出现 任务不能正常调度; 1、我在官网下载的3.1.3的代码,CPU上下文切换使用的包里面libcpu\arm\arm926文件夹中的context.s cpuport.c stack.c文件,启动文件是我们公司自己写的,裸机可以正常启动CPU,开发环境为MDK5.20; 2、main函数如下 int main(void) 3、我还建立了一个LED指示灯的任务,代码如下: static void LED_entry(void *parameter) 4、整体上感觉 调用 rt_thread_mdelay 之后就没有任何反应,串口无任何输出,感觉是调度器或者上下文切换出错了; 5、我也是第一次在ARM9上移植该RTOS(我的裸机程序运行是正常的在该MCU上),希望大家给点意见怎么排查,相当感谢。 |
|
相关推荐
6个回答
|
|
检查中断映射,感觉这块的问题可能性大些。
最好能单步调试,这样看得更清楚些。 中断调好后,请检查心跳中断。因为没有心跳中断,你又只有一个LED线程,delay后他就会一直在IDEL线程中。 如果你创建2个LED线程,并不使用delay,应该可以看到2个线程交替执行。 因为ARM9的直接切换不需要中断。 |
|
|
|
我检测过心跳中断,中断一直在发生,我在中断里面点了一个灯
static void TIME1_IRQHandler(void) { static uint32_t led_tmp; led_tmp++; if(led_tmp%2)SetGpio(10,2); else ClearGpio(10,2); rt_thread_mdelay(100); int ir_tmp; //printf("1"); /* enter interrupt */ rt_interrupt_enter(); rt_tick_increase(); /* leave interrupt */ rt_interrupt_leave(); ir_tmp=inl(HW_TIMER1_IR); if((ir_tmp & 0x1) != 0) { outl(0x1,HW_TIMER1_IR); } if((ir_tmp & 0x2) != 0) { outl(0x2,HW_TIMER1_IR); } if((ir_tmp & 0x4) != 0) { outl(0x4,HW_TIMER1_IR); } if((ir_tmp & 0x8) != 0) { outl(0x8,HW_TIMER1_IR); } if((ir_tmp & 0x10) !=0) { outl(0x10,HW_TIMER1_IR); } } |
|
|
|
|
|
|
|
enable_interrupts(); 开始是rt_hw_board_init里面,我最开始怀疑中断出问题 才放过来测试一下,我也想先把msh移植通,,但是这不是第一步任务调度就出问题了嘛;
我以前都是在M0 M3 M4上用,第一次在ARM9的芯片上移植,ARM9的启动文件裸机是可以正常工作的,启动、中断都是OK的,按您的经验看,直接使用官方的contxt.s 就可以了还是还是需要配合RTOS改启动文件呢,以前在M0 M3上都没有改过启动文件。 额外说一下,虽然rt_thread_mdelay之后任务不能调度,但是我检查过RTOS的心跳定时中断1ms是正常在中断的。 |
|
|
|
针对Keil,一般找一个arm9的context_rvds.S是可以的。不行的话,估计得单步调试,特别是中断的部分。
arm9的移植肯定不需要改到RTT其他文件,主要是启动汇编和任务上下文切换汇编,以及对应的驱动文件。arm9,你可以说明下是哪家的arm9。 |
|
|
|
我重点看一下这三部分,我们自己的一颗ARM9内核的芯片,底层给过来的是ucos,不过我习惯用RTT 所以想自己移植一份RTT上去。
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
飞凌嵌入式ElfBoard ELF 1板卡-CAN编程示例之开发板测试
352 浏览 0 评论
该问题是用APP给芯海科技的CST92F25芯片发指令是出现的
2085 浏览 1 评论
696 浏览 0 评论
1433 浏览 1 评论
2174 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-20 00:48 , Processed in 0.829551 second(s), Total 83, Slave 67 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号