硬汉嵌入式论坛

 找回密码
 立即注册
查看: 4979|回复: 1
收起左侧

[ThreadX全家桶] M7 移植ThreadX的问题

[复制链接]

15

主题

73

回帖

118

积分

初级会员

积分
118
发表于 2020-9-28 14:54:20 | 显示全部楼层 |阅读模式
本帖最后由 WSTON 于 2020-9-28 14:55 编辑

移植ThreadX到RT1052遇到问题,在此请教各位大侠

使用芯片: RT1052   M7内核
参考汉哥的ThreadX的教程移植好了ThreadX,能够跑起多任务来了。
然后准备弄一下LCD,发现问题如下:

LCD管理器开启了中断,进行LCD清屏的时候进入了 DefaultISR中断处理函数
  1. NMI_WAKEUP_IRQHandler
  2. DefaultISR
  3.                 LDR    R0, =DefaultISR
  4.                 BX     R0
  5.                 ENDP
  6.                   ALIGN


  7.                 END
复制代码


之前移植的时候还没有用到中断,我个人怀疑是中断的问题没有处理好。

说明一下,RT1052的移植与教程中不同的地方就是RT1052没有定义栈顶 __initial_sp
所以我自己在启动文件定义了一个,其实也不知道是否完全正确:


  1.                 AREA    RESET, DATA, READONLY
  2.                                 EXPORT         __initial_sp
  3.                 EXPORT  __Vectors
  4.                 EXPORT  __Vectors_End
  5.                 EXPORT  __Vectors_Size
  6.                 IMPORT  |Image$ARM_LIB_STACK$ZI$Limit|

  7. __Vectors       DCD     |Image$ARM_LIB_STACK$ZI$Limit| ; Top of Stack
  8.                 DCD     Reset_Handler  ; Reset Handler
  9.                 DCD     NMI_Handler                         ;NMI Handler
  10.                 ;... 为截图省略了
  11. __Vectors_End

  12. __Vectors_Size  EQU     __Vectors_End - __Vectors

  13.                 AREA    |.text|, CODE, READONLY
  14.                        
  15. ; kuver,怪了  + 0x80000000都还能跑
  16. ;__initial_sp        EQU                __Vectors + 0x80000000
  17. __initial_sp        EQU                __Vectors + 4
复制代码


谢谢

回复

使用道具 举报

15

主题

73

回帖

118

积分

初级会员

积分
118
 楼主| 发表于 2020-9-28 15:42:50 | 显示全部楼层
啊啊,不好意思,我的错了,蒙着copy文件,忘记把LEDIF的中断服务函数是在emWIn那边的配置接口文件了,没有把LCDIF的中断写上去(也没有报错)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-8-17 10:04 , Processed in 0.034456 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表