迪文科技论坛

 找回密码
 立即注册
搜索
查看: 1353|回复: 4

【分享】Ucos II在迪文温控器TC041C11W04(T5L)上的移植

[复制链接]

17

主题

118

回帖

1103

积分

金牌会员

Rank: 6Rank: 6

积分
1103
QQ
发表于 2020-4-19 00:24:54 | 显示全部楼层 |阅读模式
由于最近刚刚换工作,项目所需,需要使用Ucos II,因为之前使用过Ucos操作系统,想更加深如的了解Ucos操作系统的内核,所以
自己参考STC51单片机移植的成功的例子,自己手移植了一下,因为手头正好有一块TC041C11W04温控器,所以突发奇想想将Ucos II
系统移植到迪文的T5L芯片上;

这里简单的介绍一下移植过程:
1.必须使用迪文原有工程中的STARTUP.A51文件,此文件为T5L的启动代码,切记不可更换;
2.os_cpu.h:
     1)此文件对数据类型做兼容,方便移植;
     2)配置堆栈的增长方向OS_STK_GROWTH   1:向下;0:向上;
           与迪文客服沟通后,T5L芯片与51单片机一致,为向上增长,此处设置为0
     3)进入代码临界区,我们使用关总中断的形式,如下:  
           #define  OS_CRITICAL_ENTER()  EA = 0    //关中断

           #define  OS_CRITICAL_EXIT()   EA = 1    //开中断
     4)任务切换:此处摘抄STC移植注释:因为MCU-51没有软中断指令,所以用程序调用代替。两者的堆栈格式相同,
                                                             RETI指令复位中断系统,RET则没有。实践表明,对于MCU-51,用子程序调
                                                             用入栈,用中断返回指令RETI出栈是没有问题的,反之中断入栈RET出栈则
                                                             不行。总之,对于入栈,子程序调用与中断调用效果是一样的,可以混用。
                                                             在没有中断发生的情况下复位中断系统也不会影响系统正常运行。
                                                              详见《uC/OS-II》第八章193页第12行

    5)堆栈设计:详细资料可以参考任哲的Ucos原理及应用的第八章,因为T5L与51系列单片机类似,此处使用STC移植成功的代码;
3.OS_CFG.H:系统裁剪和配置;
           最大任务数:10;
           我们只测试信号量和任务切换,其他功能已经屏蔽,如有需要,在此文件配置即可;
4.tick时钟:
         我们使用T5L的T0作为系统的中断源,T5L使用11.0592M晶振(此处在硬件上看到),但是系统中宏定义FOSC为206438400(倍频???)
         我们定义Tick=1000/s,所以设置定时器中断为1ms,此处可以根据不同需求修改;
5.OS_CPU_A.ASM:此文件直接使用历程中的文件,兼容;想仔细了解的小伙伴可以自行百度!


6.程序的运行:
     共三个任务,代码请看工程,分别是:
         Start_Task:优先级:8
                           功能:创建Task1_EXE_Task和Task2_EXE_Task;
                                     对这两个任务的执行次数数清零;
                                     向任务Task2_EXE_Task抛信号量;
                                     将数据发送到变量地址,显示到屏幕;


        Task1_EXE_Task:优先级:7
                                   功能:记录自身执行次数;
        Task2_EXE_Task:优先级:6
                                   功能:记录接收到信号量的次数;
本人能力有限,错误的地方欢迎指出!UcosII工程地址:
链接:https://pan.baidu.com/s/1nCyP0i6q56NUSav5PXzXmw
提取码:desy


梦想画板子画到眼瞎,写程序写到秃头!
回复

使用道具 举报

17

主题

118

回帖

1103

积分

金牌会员

Rank: 6Rank: 6

积分
1103
QQ
 楼主| 发表于 2020-4-19 08:42:12 | 显示全部楼层

https://v.youku.com/v_show/id_XN ... 13141534.0.13141534
这里是优酷视频链接,上传的视频不知道为什么播放不了!
梦想画板子画到眼瞎,写程序写到秃头!
回复

使用道具 举报

17

主题

118

回帖

1103

积分

金牌会员

Rank: 6Rank: 6

积分
1103
QQ
 楼主| 发表于 2020-4-19 08:40:48 | 显示全部楼层
梦想画板子画到眼瞎,写程序写到秃头!
回复

使用道具 举报

1

主题

31

回帖

750

积分

高级会员

Rank: 4

积分
750
发表于 2020-4-23 11:37:00 | 显示全部楼层
先赞一个,以前有用过Ucos II单片机系统,但一直没有研究,之后拿楼主代码研究下
回复

使用道具 举报

17

主题

118

回帖

1103

积分

金牌会员

Rank: 6Rank: 6

积分
1103
QQ
 楼主| 发表于 2020-4-23 14:42:01 | 显示全部楼层
liulaogen2 发表于 2020-4-23 11:37
先赞一个,以前有用过Ucos II单片机系统,但一直没有研究,之后拿楼主代码研究下 ...

我只是移植过来,只验证了任务切换和信号量,其他都没验证,慎用
梦想画板子画到眼瞎,写程序写到秃头!
回复

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|小黑屋|迪文科技论坛 ( 京ICP备05033781号-1 )

GMT+8, 2024-11-23 01:08 , Processed in 0.067987 second(s), 24 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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