硬汉嵌入式论坛

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

[ThreadX全家桶] [问题]SSP的Threadx源码有人成功查看到了吗?说要注册公司账号才可以,但是没搞定。

[复制链接]

1

主题

32

回帖

35

积分

新手上路

积分
35
发表于 2020-10-7 13:57:38 | 显示全部楼层 |阅读模式
本帖最后由 watershade 于 2020-10-7 14:01 编辑

[问题]为了研究Threadx,昨晚下载了瑞萨的SSP和E2_Studio。今天把Renesas.Synergy.1.7.8.pack解压了,发现文件很全。再解压的文件夹下面有Threadx的源文件,比如路径Renesas.Synergy.1.7.8\synergy\ssp\src\framework\el\tx\tx_src。

t1.png


t2.png t3.png


可以不幸的是,这些源文件全部加密了。
打开之后,全是这样的:
t4.png
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~·
这个倒是不意外,现在是eval用户。注册了公司账户,花了一个小时也没搞定license。

有没有小伙伴搞定了,能分享一下部分代码吗?
这里将呐几个.S的全做成了.c的。很具有参考价值。
主要如下:
├── tx_initialize_low_level.c
├── tx_misra.c
├── tx_thread_interrupt_control.c
├── tx_thread_interrupt_disable.c
├── tx_thread_interrupt_restore.c
├── tx_thread_schedule.c
├── tx_thread_stack_build.c
├── tx_thread_system_return.c
└── tx_timer_interrupt.c

对应开源ports的S文件├── tx_thread_context_restore.s
├── tx_thread_context_save.s
├── tx_thread_interrupt_control.s
├── tx_thread_interrupt_disable.s
├── tx_thread_interrupt_restore.s
├── tx_thread_schedule.s
├── tx_thread_stack_build.s
├── tx_thread_system_return.s
└── tx_timer_interrupt.s
多谢多谢。



回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115804
QQ
发表于 2020-10-7 14:26:43 | 显示全部楼层
源码的话,不用倒腾瑞萨的了。

ThreadX全家桶源码和文档下载,含GUI,文件系统,网络协议栈,USB协议栈,GUIX Studio,TraceX等(2020-10-02)
http://www.armbbs.cn/forum.php?m ... 7925&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

1

主题

32

回帖

35

积分

新手上路

积分
35
 楼主| 发表于 2020-10-7 19:20:58 | 显示全部楼层
eric2013 发表于 2020-10-7 14:26
源码的话,不用倒腾瑞萨的了。

ThreadX全家桶源码和文档下载,含GUI,文件系统,网络协议栈,USB协议栈 ...

源码就是用开源的,主要是想研究一下瑞萨的那几个文件怎么写的。
我现在倾向于不改变stm32本身的.S文件,而是通过添加额外文件实现。
现在已经实现了,但是觉得还是不够简洁。
主要是_tx_initialize_unused_memory的设置问题。因为如果不设置,那么在使用 tx_byte_pool_create的时候就选不了first_unused_memory。(会出错)
现在有两个思路:一个是继续沿用这种方法,找到栈顶unused_memory的地方。另一个思路是参考freeRTOS的思路,做一个heap。从heap里面分空间。但是还是避不开找unused momery。因为需要检查是否有内存交叠。
等彻底搞好了,再在论坛里发教程。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115804
QQ
发表于 2020-10-7 20:56:03 | 显示全部楼层
watershade 发表于 2020-10-7 19:20
源码就是用开源的,主要是想研究一下瑞萨的那几个文件怎么写的。
我现在倾向于不改变stm32本身的.S文件 ...

说干就干,修改ThreadX内核移植的tx_initialize_low_level.s汇编文件为C文件
http://www.armbbs.cn/forum.php?m ... 0053&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

1

主题

32

回帖

35

积分

新手上路

积分
35
 楼主| 发表于 2020-10-10 09:02:48 | 显示全部楼层
eric2013 发表于 2020-10-7 20:56
说干就干,修改ThreadX内核移植的tx_initialize_low_level.s汇编文件为C文件
http://www.armbbs.cn/foru ...

多谢汉哥!看了一下,要使用__INITIAL_SP似乎还需要添加分段加载。我稍后看一下GNU和IAR是怎么实现的。看看有没有更简洁的办法。
原先S用的:
  1.     LDR     r0, =_tx_initialize_unused_memory       ; Build address of unused memory pointer
  2.     LDR     r1, =|Image$ZI$Limit|                 ; Build first free address
  3.     ADD     r1, r1, #4                              ;
  4.     STR     r1, [r0]                                ; Setup first unused memory pointer
复制代码


这个字段|Image$$ZI$$Limit|没找到在哪里定义的
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115804
QQ
发表于 2020-10-10 09:18:21 | 显示全部楼层
watershade 发表于 2020-10-10 09:02
多谢汉哥!看了一下,要使用__INITIAL_SP似乎还需要添加分段加载。我稍后看一下GNU和IAR是怎么实现的。看 ...

发你的帖子里面二楼贴了。
回复

使用道具 举报

1

主题

32

回帖

35

积分

新手上路

积分
35
 楼主| 发表于 2020-10-10 09:34:45 | 显示全部楼层
eric2013 发表于 2020-10-10 09:18
发你的帖子里面二楼贴了。

多谢汉哥。我看了,就是看看有没有别的方法
回复

使用道具 举报

1

主题

32

回帖

35

积分

新手上路

积分
35
 楼主| 发表于 2020-10-10 12:29:39 | 显示全部楼层
eric2013 发表于 2020-10-10 09:18
发你的帖子里面二楼贴了。

汉哥,我之所以觉得这样做不好是因为我们在scatter file里面设置了:
  1. ARM_LIB_STACK __STACK_TOP EMPTY -__STACK_SIZE
复制代码

而后在调用这个位置,如果这样的话,我们能否直接设置好_tx_initialize_unused_memory.
因为这种方法不具有通用性,而且繁琐。GNU和IAR里面的摄制又是另一种方法。

目前可以直接把stack设大一点,为thread,mutex等的空间全从这里面分配,但这不是一个好办法。最好是这两个stack是不能重叠的。但是stack不能实现这一点。我记得这个stack设置小了,会自动扩展的不想heap区域。

回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115804
QQ
发表于 2020-10-10 13:46:09 | 显示全部楼层
watershade 发表于 2020-10-10 12:29
汉哥,我之所以觉得这样做不好是因为我们在scatter file里面设置了:

而后在调用这个位置,如果这样的 ...

这么跟你说吧,应用程序里面函数tx_application_define(void *first_unused_memory)形参(这个形参就是low level init关联的unused_memory)就是一个很繁琐的东西。

我现在已经发布的程序里面直接就不采用这种方式,直接采用最安全的静态分配,简单易用。

这个问题就交流这么多吧。
回复

使用道具 举报

1

主题

32

回帖

35

积分

新手上路

积分
35
 楼主| 发表于 2020-10-20 09:52:29 | 显示全部楼层
eric2013 发表于 2020-10-10 13:46
这么跟你说吧,应用程序里面函数tx_application_define(void *first_unused_memory)形参(这个形参就是lo ...

多谢汉哥详细指导,祝论坛红红火火
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-19 16:52 , Processed in 0.291697 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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