搜索
bottom↓
回复: 17

移植uCOSII体会(二)

[复制链接]

出0入0汤圆

发表于 2009-3-28 00:33:30 | 显示全部楼层 |阅读模式
今天得到了dr2001,maxwell_lee metalmax 两位朋友的指点,在此再次表示对他们的感谢!
今天在论坛中看到了“ uc/os为什么不可以在任意地址运行?”这样一个帖子,在此我谈谈我的一些看法
1.正如“dr2001”在给我的回复中提到的“ARMv5开始内核是哈佛的,对外总线地址空间就是统一的,不像51分了各种地址空间”我认为LPC的启动一定是从
  Ox0000 0000开始的,但是单一的地址肯定过于简单,因为我们的系统往往有很多不同的存储器件。所以就有了memory re-mapping。重定向用的很多。在
  LPC23XX就有专门的寄存器来进行控制,而且LPC23XX启动的时候就吧0x0000 0000重定向到了一个自己的初始化程序,主要用来做ISP等一系列的下载,而且
  其中的一下函数还可以进行调用,实现程序运行期间对Flash的读写操作。这点很像我用过的sst的单片机。我想对于arm7的体系结构来说,中断地址,程序
  开始地址等都是定死的,但是可以通过scat文件对存储位置的安排,重定向,相应的跳转指令来实习代码在任意位置启动。
2.写了一个用一个信号量两个任务来控制两个led灯一个先亮灭掉后在亮下一个的程序,也就是两个led的跑马灯。虽然可以实现但是总觉得不太好。希望大家
  指点一下
  static  void  AppTaskLed (void *p_arg)
{  
        CPU_INT08U   key=1;
        CPU_INT08U  *msg;
        CPU_INT08U   err;
        CPU_INT32U         nstate=0;
        p_arg=p_arg;
         led_on(1);                 
        led_off(2);
        OSTimeDlyHMSM(0, 0, 1, 0);
        OSMboxPost(AppUserIFMbox, (void *)key);
        OSTimeDlyHMSM(0, 0, 0, 1);
        while(1)
        {                                                
                msg = (CPU_INT08U *)(OSMboxPend(AppUserIFMbox, 0, &err));
            nstate=        (CPU_INT32U)msg;
                if (err == OS_NO_ERR)  
                {
            nstate = (CPU_INT32U)msg;
                        if(nstate==2)
                        {                                                         
                                lde_on(1);
                                lde_off(2);
                                OSTimeDlyHMSM(0, 0, 1, 0);         
                                OSMboxPost(AppUserIFMbox, (void *)key);
                                OSTimeDlyHMSM(0, 0, 0, 1);                        
                        }
        }
                 
        }         

   
}
static  void  AppTaskLed2 (void *p_arg)
{  
        CPU_INT08U  *msg;
        CPU_INT08U   err;
        CPU_INT32U         nstate=0;
        CPU_INT08U   key=2;
        p_arg=p_arg;
        while(1)
        {
                msg = (CPU_INT08U *)(OSMboxPend(AppUserIFMbox, 0, &err));
                if (err == OS_NO_ERR)  
                {
            nstate = (CPU_INT32U)msg;
                        if(nstate==1)
                        {                                                         
                                led_on(2);
                                led_off(1);
                                OSTimeDlyHMSM(0, 0, 1, 0);         
                                OSMboxPost(AppUserIFMbox, (void *)key);         
                                OSTimeDlyHMSM(0, 0, 0, 1);                 
                        }
        }

        }
   
}
 

出0入0汤圆

发表于 2009-5-15 16:10:52 | 显示全部楼层
信号量多用于任务间同步,和互斥.
邮箱用于大数据的传送.
队列多用于处理有序的事件.



信号量就是中央Z.F.发给官人做一方大员的官印,有很多种官印但是不能一印多发,得到官印者才能掌权鱼肉一方百姓(任务得到信号量才能运行),否则你就只要等官跑官。
   邮箱,就好给比当差的下达的抄家、拆房、收监等红头文件,拿到啥样的文件就干啥。
   消息队列,就是给任务发了一连串的邮件,官员(任务)拿到这一大摞文件,可以从底部或者顶部(LIFO or FIFO)一个一个拆开处理。

出0入0汤圆

发表于 2009-10-24 09:23:44 | 显示全部楼层
ddddddddd

出0入0汤圆

发表于 2009-11-5 23:55:00 | 显示全部楼层
1楼正解

出0入0汤圆

发表于 2009-12-16 22:32:54 | 显示全部楼层
做个记号~~~~~~~~

出0入0汤圆

发表于 2009-12-16 23:24:15 | 显示全部楼层
来看抄家的

出0入0汤圆

发表于 2009-12-18 07:50:21 | 显示全部楼层
1楼说话很河蟹

顶了,又长知识又解气!!

出0入0汤圆

发表于 2010-1-8 15:47:23 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-4-27 11:11:21 | 显示全部楼层
回复【1楼】lulidpj
信号量多用于任务间同步,和互斥.
邮箱用于大数据的传送.
队列多用于处理有序的事件.
  
信号量就是中央Z.F.发给官人做一方大员的官印,有很多种官印但是不能一印多发,得到官印者才能掌权鱼肉一方百姓(任务得到信号量才能运行),否则你就只要等官跑官。
   邮箱,就好给比当差的下达的抄家、拆房、收监等红头文件,拿到啥样的文件就干啥。
   消息队列,就是给任务发了一连串的邮件,官员(任务)拿到这一大摞文件,可以从底部或者顶部(LIFO or FIFO)一个一个拆开处理。

-----------------------------------------------------------------------

说的很好!

出0入0汤圆

发表于 2010-6-10 17:02:57 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-6-19 18:57:02 | 显示全部楼层
马克思

出0入0汤圆

发表于 2011-6-16 10:17:26 | 显示全部楼层
学习了。

出0入0汤圆

发表于 2011-6-17 08:42:51 | 显示全部楼层
mark!!

出0入0汤圆

发表于 2011-6-17 09:47:13 | 显示全部楼层
又受教了

出0入0汤圆

发表于 2011-6-17 10:10:45 | 显示全部楼层
我是顶一楼的解释的,一语中的,讲的非常好

出0入0汤圆

发表于 2011-7-9 05:02:41 | 显示全部楼层
mark

出0入30汤圆

发表于 2011-7-12 18:12:12 | 显示全部楼层
MARK先。学习学习

出0入0汤圆

发表于 2011-7-14 12:22:44 | 显示全部楼层
回复【楼主位】chenguozi
-----------------------------------------------------------------------

我喜欢这种风格,易懂,风趣
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-29 11:10

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

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