硬汉嵌入式论坛

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

[ThreadX全家桶] 6.0.1 版ThreadX 的移植文件 有个bug

[复制链接]

3

主题

24

回帖

33

积分

新手上路

积分
33
发表于 2020-7-29 09:58:32 | 显示全部楼层 |阅读模式
ports/cortex_m4/src/tx_thread_context_restore.s

;VOID   _tx_thread_context_restore(VOID)
;{
    EXPORT  _tx_thread_context_restore
_tx_thread_context_restore
    IF EF:TX_ENABLE_EXECUTION_CHANGE_NOTIFY
;
;    /* Call the ISR exit function to indicate an ISR is complete.  */
;
    PUSH    {r0,lr}                                 ; Save ISR lr
    BL      _tx_execution_isr_exit                  ; Call the ISR exit function
    POP     {r0,lr}                                 ; Restore ISR lr
    ENDIF
;
    POP     {lr}          ; 这行应该去掉!!!!
    BX      lr
;}

回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115787
QQ
发表于 2020-7-29 11:00:05 | 显示全部楼层
看代码应该是他们发布的MDK AC5,这个AC5版的问题太多了,直接放弃使用。
回复

使用道具 举报

3

主题

24

回帖

33

积分

新手上路

积分
33
 楼主| 发表于 2020-7-29 12:45:10 | 显示全部楼层
确实是AC5的代码, 不过我发现用AC5或者keil下的移植.s文件,配合gnu的头文件 tx_port.h 可以编译运行成功。
回复

使用道具 举报

3

主题

24

回帖

33

积分

新手上路

积分
33
 楼主| 发表于 2020-7-29 12:49:06 | 显示全部楼层
eric2013 发表于 2020-7-29 11:00
看代码应该是他们发布的MDK AC5,这个AC5版的问题太多了,直接放弃使用。

AC5的代码, 配合gnu的头文件, 可以在AC6下编译运行成功。
回复

使用道具 举报

48

主题

375

回帖

519

积分

金牌会员

积分
519
发表于 2020-7-31 19:30:45 | 显示全部楼层
你好,这行BUG是跟编译器相关吗?如果使用IAR版本这行就保留呢?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115787
QQ
发表于 2020-7-31 19:42:05 | 显示全部楼层
wanglehui_12 发表于 2020-7-31 19:30
你好,这行BUG是跟编译器相关吗?如果使用IAR版本这行就保留呢?

这里是代码写错了,push入栈和pop出栈要成对使用。

这个 POP     {lr}  只出栈了,前面没有对应的入栈。
回复

使用道具 举报

48

主题

375

回帖

519

积分

金牌会员

积分
519
发表于 2020-7-31 20:07:41 | 显示全部楼层
我看了一下v6.0.1版本移植,多余Pop在几个移植文件都有。
没有发现,估计是函数_tx_thread_context_restore没有调用

回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115787
QQ
发表于 2020-7-31 22:43:58 | 显示全部楼层
wanglehui_12 发表于 2020-7-31 20:07
我看了一下v6.0.1版本移植,多余Pop在几个移植文件都有。
没有发现,估计是函数_tx_thread_context_restor ...

这个要使能了才会用到,比如这里的CPU利用率计算

ThreadX的CPU利用率实现方式一:原装的任务切入切出API接口函数实现
http://www.armbbs.cn/forum.php?m ... 8122&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-19 07:22 , Processed in 0.229825 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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