搜索
bottom↓
回复: 40

RL-ARM:最近分析了RL-ARM V4.01的源代码,收获不小

[复制链接]

出0入0汤圆

发表于 2009-12-23 22:56:34 | 显示全部楼层 |阅读模式
RL-ARM这个操作系统还是不错的。
   
    最近分析了其源代码,并进行了一些修改,现汇报如下:
    平台:Cortex-M3
    开发工具: keil MDK V4.02
    RL-ARM:版本 V4.01

    只有一个空壳main()函数的情况,全部内核的代码量: < 4K
    只有一个main()函数只调用系统初始化和一个空壳任务,其它无关内容全部关闭(包括:信号量、互斥量、邮箱、事件和用户定时器),代码量:<2.5K

    这么看来,RL-ARM真的不错。

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2009-12-23 23:44:42 | 显示全部楼层
没有有分析PowerPac的?

出0入0汤圆

发表于 2009-12-24 09:32:14 | 显示全部楼层
发现PowerPac其实是ucOS的公司提供的.

出0入0汤圆

 楼主| 发表于 2009-12-24 09:40:07 | 显示全部楼层
PowerPac没有原码啊。谁有?提供一下。

    有人说RL-ARM和ucOS差不多,这种说法是不正确的。
    如果说RL-ARM在设计时参考了ucOS,那是非常可能的,因为很多函数从外表看起来很像。

出0入0汤圆

 楼主| 发表于 2009-12-24 13:21:00 | 显示全部楼层
今天又仔细分析了RL-ARM V4.01的源码,终于发现问题了。

    其设计中的链表操作存在问题,使用的人特别注意了。

出0入0汤圆

发表于 2009-12-24 14:20:18 | 显示全部楼层
哦,可否写一些笔记出来,大家一起学习下?

出0入0汤圆

发表于 2009-12-24 14:20:37 | 显示全部楼层
现在关于RL的学习资料比较少,呵呵。

出0入0汤圆

发表于 2009-12-30 20:05:34 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-12-30 20:08:25 | 显示全部楼层
PowerPAC 好像是 embos 就是出j/l/i/n/k的大名鼎鼎的 segger 的.

出0入0汤圆

发表于 2010-3-8 13:14:38 | 显示全部楼层
能否提示一下在那里出现了问题

出0入0汤圆

发表于 2010-3-8 13:17:06 | 显示全部楼层
uC/GUI就是Segger的

出0入0汤圆

发表于 2010-3-9 19:45:36 | 显示全部楼层
能分享你的使用经验吗?

出0入0汤圆

发表于 2010-3-9 21:13:35 | 显示全部楼层
比较看好RL-ARM

出0入0汤圆

发表于 2010-3-10 14:27:40 | 显示全部楼层
费用不少吧?

出0入0汤圆

发表于 2010-7-11 08:28:40 | 显示全部楼层
RL_ARM如果不用以太网堆栈,源代码可见。这就是优点。 如果用TCP,可以考虑增加lwip就好了, 至少USB/CAN/FS都有了代码。PowerPAC就是一个黑盒子,晕

出0入0汤圆

发表于 2010-10-9 17:45:08 | 显示全部楼层
回复【4楼】wuzhujian  吴助建
&#160;&#160;&#160;&#160;今天又仔细分析了rl-arm&#160;v4.01的源码,终于发现问题了。

&#160;&#160;&#160;&#160;其设计中的链表操作存在问题,使用的人特别注意了。
&#160;&#160;&#160;&#160;
-----------------------------------------------------------------------

之前发现的问题是杀进程的时候会把自己杀死,后来官方debug掉了,还有没别的什么问题

出0入0汤圆

发表于 2010-10-9 17:58:47 | 显示全部楼层
TO: 助建前辈,如果方便可否上专一份 Cortex-M3的RTX工程例子,本人想参考一下,感激不尽...

出10入0汤圆

发表于 2010-10-10 01:29:26 | 显示全部楼层
学习了~!

出0入0汤圆

发表于 2010-10-10 10:20:58 | 显示全部楼层
回复【2楼】zm2002
发现powerpac其实是ucos的公司提供的.
-----------------------------------------------------------------------

正如8楼所言,IAR的PowrPac就是是Segger公司的,包括FileSystem,GUI,RTOS,TCPIP,USB和USBH

Micrium公司的有些产品也是OEM Segger的,如uC/GUI,还有它的uC/OS的那个uC/View估计也和Segger有点关系?

不过uC/OS-II和embOS倒不是一个东西,两者的差别比较大的

出0入0汤圆

 楼主| 发表于 2010-10-11 05:30:45 | 显示全部楼层
本人代码都是实际产品上的,不可能上传,但可以解答问题。

出0入0汤圆

发表于 2010-10-30 09:56:43 | 显示全部楼层
RL-ARM与ucos对比起来,各有什么优缺点?

出0入0汤圆

发表于 2010-10-30 10:17:31 | 显示全部楼层
回复【15楼】real_zyf  
回复【4楼】wuzhujian  吴助建
    今天又仔细分析了rl-arm v4.01的源码,终于发现问题了。
    其设计中的链表操作存在问题,使用的人特别注意了。
   
-----------------------------------------------------------------------
之前发现的问题是杀进程的时候会把自己杀死,后来官方debug掉了,还有没别的什么问题
-----------------------------------------------------------------------

这个问题确实有,呵呵。遇到过。

出0入0汤圆

发表于 2010-10-30 11:40:09 | 显示全部楼层
一直用protothreads,符合裸奔习惯

出0入0汤圆

发表于 2010-10-30 19:07:30 | 显示全部楼层
rl-arm 貌似非抢占式系统?

组件:RTX、FlashFS、TCPnet、CAN

组件好少。

FlashFS 楼主有用过么?有什么特点呢?

出0入0汤圆

 楼主| 发表于 2010-10-31 00:35:05 | 显示全部楼层
回复【23楼】ljt8015  
-----------------------------------------------------------------------

    RL-ARM当然是抢占式的OS。
    OS的抢占是如何实现的?
    1> 用定时器,用时间片实现线程轮换;
    2> 通过中断,在中断返回后实现线程抢占。

    我只用了内核,其它非原码的,我都不用。
    另外,RL-ARM原来代码的效率并不高。我说几点吧:
    在SVC的OS服务中,
    1> 为了支持其它的所谓用户服务,每次都要从SVC指令中取SVC代号;
    2> 为了支持中断嵌套,每次SVC服务时,都从用户堆栈读参数(R0~R3)。

出0入0汤圆

发表于 2010-10-31 09:47:03 | 显示全部楼层
to楼主:怎么在RTX中使用printf()?

出0入0汤圆

发表于 2010-10-31 10:29:01 | 显示全部楼层
rl 的 tcpip的代码貌似只有示例程序?

出0入0汤圆

 楼主| 发表于 2010-10-31 11:05:10 | 显示全部楼层
回复【25楼】yoko  
to楼主:怎么在rtx中使用printf()?
-----------------------------------------------------------------------

    我从来不用printf()函数,在RL-ARM中。

出0入0汤圆

发表于 2010-11-11 16:21:58 | 显示全部楼层
回复【23楼】ljt8015
-----------------------------------------------------------------------

不是效率问题, 你好好看一下《ARM Cortex-M3权威指南》就能明白为何要这样处理了.

出0入0汤圆

发表于 2010-11-16 13:33:54 | 显示全部楼层
回复【26楼】ljt8015
rl 的 tcpip的代码貌似只有示例程序?
-----------------------------------------------------------------------

出0入0汤圆

发表于 2010-11-16 23:46:22 | 显示全部楼层
回复【26楼】ljt8015&#160;
rl&#160;的&#160;tcpip的代码貌似只有示例程序?
-----------------------------------------------------------------------

的确RL的tcp/ip栈不提供源代码

出0入0汤圆

发表于 2010-12-13 22:54:33 | 显示全部楼层
楼主还在吗?Cortex-M3 CPU, 任务运行时如何读取到sysTimer定时的中断次数。

出0入0汤圆

发表于 2010-12-14 15:25:39 | 显示全部楼层
学习 mark~

出0入0汤圆

 楼主| 发表于 2010-12-14 18:49:35 | 显示全部楼层
回复【31楼】fableman  
-----------------------------------------------------------------------

    在RTX中,全局变量os_time中,保存SysTick的中断次数。

出0入0汤圆

发表于 2011-4-14 11:18:33 | 显示全部楼层
rl-arm4.12就不提供源码了,连内核的都没有

出0入0汤圆

发表于 2011-4-19 13:37:18 | 显示全部楼层
不好意思,上次不知道怎么回事,看不到RTX的源码,重装一下就ok了。

出0入0汤圆

发表于 2012-5-19 10:26:33 | 显示全部楼层
RL-TCPNET有人移植过没?

出0入0汤圆

发表于 2013-4-24 08:47:34 | 显示全部楼层
jianghehupo 发表于 2011-4-14 11:18
rl-arm4.12就不提供源码了,连内核的都没有

rl-arm 4.13 还有源码可以搜索到的


RL-ARM Version 4.13

出0入0汤圆

发表于 2013-5-11 16:12:33 来自手机 | 显示全部楼层
没有单独的rt-arm包而已,集成到了mdk中,安装新版mdk就自带了。

另外,arm公司的那个cortex通同os接口就是rt-arm,可以免费下的

出0入0汤圆

发表于 2013-10-17 17:37:12 | 显示全部楼层
目前在学习中,我使用最新版MDK7,有个RTE直接设置就好了,比较方便
具体RL-ARM有哪些优缺点,望使用过的高手,拿出来摆摆看!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-13 01:20

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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