硬汉嵌入式论坛

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

[ThreadX全家桶] 最新发现ThreadX内核移植文件tx_initialize_low_level.s做的有点挫

[复制链接]

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115799
QQ
发表于 2020-9-17 10:51:41 | 显示全部楼层 |阅读模式
感觉这个文件应该用C实现,而不是用汇编来实现,他这个文件就是给几个变量赋值,设置Systick,PendSV和SVC中断,以及Systick中断服务程序。

使用C的好处是用于MDK的话,无需再倒腾那个中断向量表和SP首地址问题了。

这样的话,大大方便了用户移植,而且移植的时候基本也都是修改这个问题。其它文件基本不用动。


针对下面这个帖子有感而发:

V7 Thread模板能不能不使用Micro Lib?
http://www.armbbs.cn/forum.php?m ... 0009&fromuid=58
(出处: 硬汉嵌入式论坛)





回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115799
QQ
 楼主| 发表于 2020-9-17 10:59:24 | 显示全部楼层
考虑作个C的,不用官方这个了。
回复

使用道具 举报

1

主题

26

回帖

29

积分

新手上路

积分
29
发表于 2020-9-17 11:13:59 | 显示全部楼层
汇编的执行效率高点
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115799
QQ
 楼主| 发表于 2020-9-17 11:21:44 | 显示全部楼层
billy 发表于 2020-9-17 11:13
汇编的执行效率高点

这是个初始化文件,这点代码的效率问题可以忽略不计。
而写个估计还没有编译器生成的汇编效果高,设置高等级优化



回复

使用道具 举报

5

主题

33

回帖

48

积分

新手上路

积分
48
发表于 2020-9-17 11:31:31 | 显示全部楼层
说的太对了,,我只是想在arm9上移植tx,为了折腾这个我居然不得不重新复习汇编。。。。。我认为硬汉可以考虑改写成C,,,一起试试?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115799
QQ
 楼主| 发表于 2020-9-17 12:04:19 | 显示全部楼层
ayuanshop 发表于 2020-9-17 11:31
说的太对了,,我只是想在arm9上移植tx,为了折腾这个我居然不得不重新复习汇编。。。。。我认为硬汉可以考 ...

我觉得可以有。
回复

使用道具 举报

42

主题

1022

回帖

1153

积分

至尊会员

积分
1153
发表于 2020-9-17 12:20:23 | 显示全部楼层
ayuanshop 发表于 2020-9-17 11:31
说的太对了,,我只是想在arm9上移植tx,为了折腾这个我居然不得不重新复习汇编。。。。。我认为硬汉可以考 ...

你移植完后可以给大家白嫖么?
回复

使用道具 举报

4

主题

1445

回帖

1457

积分

至尊会员

积分
1457
发表于 2020-9-17 12:32:28 | 显示全部楼层
回复

使用道具 举报

5

主题

33

回帖

48

积分

新手上路

积分
48
发表于 2020-9-17 14:01:48 | 显示全部楼层
ghslfgkkl88 发表于 2020-9-17 12:20
你移植完后可以给大家白嫖么?

当然可以了~~~~我已经躺好了~~大家尽管来上我~
回复

使用道具 举报

57

主题

908

回帖

1079

积分

至尊会员

积分
1079
发表于 2020-9-17 14:10:59 | 显示全部楼层
ayuanshop 发表于 2020-9-17 14:01
当然可以了~~~~我已经躺好了~~大家尽管来上我~

大家要真带瓶油坐你旁边,你肯定又要跑路了。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115799
QQ
 楼主| 发表于 2020-9-17 14:19:18 | 显示全部楼层
ayuanshop 发表于 2020-9-17 14:01
当然可以了~~~~我已经躺好了~~大家尽管来上我~

笑的我肚子疼,这回复绝了
回复

使用道具 举报

7

主题

19

回帖

40

积分

新手上路

积分
40
发表于 2020-9-17 14:42:07 | 显示全部楼层
ThreadX可是号称启动时间小于周期120个,会不会是用汇编优化出来的?
还有ThreadX的内核讲解(如调度算法)和微内核设计,硬汉哥会在后续的内核教程中更新吗?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115799
QQ
 楼主| 发表于 2020-9-17 16:33:00 | 显示全部楼层
sun1996 发表于 2020-9-17 14:42
ThreadX可是号称启动时间小于周期120个,会不会是用汇编优化出来的?
还有ThreadX的内核讲解(如调度算法 ...

会做,ThreadX内核源码想研究一波。
回复

使用道具 举报

36

主题

2050

回帖

2158

积分

至尊会员

积分
2158
发表于 2020-9-17 17:22:58 | 显示全部楼层
这个应该好改。
Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better.
回复

使用道具 举报

7

主题

19

回帖

40

积分

新手上路

积分
40
发表于 2020-9-17 17:53:07 | 显示全部楼层
eric2013 发表于 2020-9-17 16:33
会做,ThreadX内核源码想研究一波。

硬汉哥,问个问题哈,我看freeRTOS源码在刚开始启动时,在开启SVC中断前,会复位MSP寄存器为栈顶地址,为了供系统栈给后面中断函数使用,这个操作在ThreadX的启动过程中有吗
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115799
QQ
 楼主| 发表于 2020-9-17 21:53:33 | 显示全部楼层
sun1996 发表于 2020-9-17 17:53
硬汉哥,问个问题哈,我看freeRTOS源码在刚开始启动时,在开启SVC中断前,会复位MSP寄存器为栈顶地址,为 ...

正常可以把这个 _tx_thread_system_stack_ptr给 MSP, 不给也没关系,以我发的例子为例,main函数里面启动代码部分几乎已经没有占用栈空间

    LDR     r0, =_tx_thread_system_stack_ptr        ; Build address of system stack pointer
    LDR     r1, =__Vectors                          ; Pickup address of vector table
    LDR     r1, [r1]                                ; Pickup reset stack pointer
    STR     r1, [r0]                                ; Save system stack pointer

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-19 11:24 , Processed in 0.460012 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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