智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 30387|回复: 117
打印 上一主题 下一主题

Uc/os移植一册通内部资料 v100

  [复制链接]

45

主题

277

帖子

0

精华

杰出人士

Rank: 12Rank: 12Rank: 12

积分
12254

论坛元老奖章

威望
1516
贡献
10106
兑换币
289
注册时间
2008-5-19
在线时间
316 小时
跳转到指定楼层
1#
发表于 2009-12-12 11:15:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 xcsjava 于 2009-12-12 11:19 编辑

            Uc/os移植一册通内部资料 v100  

        需要xs128系列的uc/os请留下email

序言:

本资料是为了配合“磊胜sd卡调试一册通”的文件系统而产生,因为下册要介绍文件系统,我们提供两个版本1带操作系统ucuc/fs
2
不带操作系统。要用uc/fs那么这里有必要提一提uc/os

这里不是讨论单片机用不用操作系统的问题。本人仅举一个例子,uc/os的公司以此为核心开发相关产品,养活一家老小,你说单片机能否用uc/os??? 想用就看,不想用就别看。网上关于飞思卡尔的xs128系列移植uc/os的文章比较少。下面分4个部分来和大家共同讨论学习。本资料可能书写有些不清楚,详细内容看视频。


一什么是uc/os?

没废话,看连接。http://micrium.com/page/products/rtos/os-ii

二uc/os有用吗?

官方的。

再来点自己的,嵌入式目前来说是个热门词,关于操作系统的书目前来说这个是比较全套的,中文翻译的有,相关的配套书也有,怎么使用,怎么移植看完就会,其他的没有这么全,没有这么容易上手!他已经是个比较完善的操作系统核,对于学习其他的嵌入式操作系统,来说绝对是个好选择。

三移植原理

Uc/os的原理: 任务调度,让一切都变得让程序员更好的掌控。

                任务调度何时开始,路径有三 :

1 定时器中作者推荐10-100ms调度一次否则cpu的大部分时间浪费在任务调度上,



2
中断调度,中断都可以纳入操作系统。



3
任务中利用信号调度另一个任务

任务调度究竟调的是什么?简单的讲就是换换环境。什么是环境?环境就是cs ip 和各个寄存器的状态,以及每个程序的内部变量。你保存好这些东西就可以了。简单了解到此即可。想深入看书。

那么怎么才能保存这些变量呢?方法有2 第一手工保存 第二让机器自己保存。

怎么让机器自己保存?中断的时候机器会保存现场,那这就好了。我们模拟中断,让他保存现场。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

45

主题

277

帖子

0

精华

杰出人士

Rank: 12Rank: 12Rank: 12

积分
12254

论坛元老奖章

威望
1516
贡献
10106
兑换币
289
注册时间
2008-5-19
在线时间
316 小时
2#
 楼主| 发表于 2009-12-12 11:15:38 | 只看该作者
四移植秘籍

1 建立工程

2 增加三个文件 includes.h os_cfg.h app_cfg.h

3 将ports ucsource 中移植文件和源文件考入

4 os_cpu.h

5 os_cpu_c.c 修改ostaskstkint 为什么修改他? 原因是要模拟swi 要用rti !

什么是rti?

(M(SP) : M(SP+1)) ⇒ CCRH : CCRL; (SP) + $0002 ⇒ SP

(M(SP) : M(SP+1)) ⇒ B : A; (SP) + $0002 ⇒ SP

(M(SP) : M(SP+1)) ⇒ XH : XL; (SP) + $0004 ⇒ SP

(M(SP) : M(SP+1)) ⇒ PCH : PCL; (SP) – $0002 ⇒ SP

(M(SP) : M(SP+1)) ⇒ YH : YL; (SP) + $0004 ⇒ SP


要清楚的知道堆栈里放的东西为 ccr b a x y rtn 这个在用rti的时候会各就位。再看

Swi


Swi和rti可以说是正好一对。

那么ostaskstkint就是要做swi应该做的事!!!!

6 修改osstarthighrdy

7 测试开始

Taskidle 8473fe 为他的地址

Sp 2eb0

是一个堆栈但不是我们的taskide的地址!1

跑到了8c97这个地方去运行,ostmr_task这个任务有了!!没有跑到taskidle.虽然跑错了了地方,但是压栈压对了。修改

8 #define OS_TMR_EN                 0    /* Enable (1) or Disable (0) code generation for TIMERS   

#define OS_TASK_STAT_EN          0  /*     Enable (1) or Disable(0) the statistics task  关掉统计任务           */

Taskidle 8283fe

Sp 233d  内容正确!果然运行到了。Taskidle

没有任务所以在这里面死循环。对了。

9 测试任务 TestTask(void *pdata) 进入了说明正确。下步进入taskidel 因为没有开启时间中断 .这里面没有进入taskidel 原因是没有软中断写好。

10 写入软中断 没有写对

改正后,进入了osctxsw  再进入 taskidle .正确

11 到此算移植完了。剩下的为开始设置时钟

  设置时钟

  

  RTICTL=0x4f;                   // 实时中断控制寄存器

CRGINT_RTIE=1;                 // 实时中断控制寄存器 CRGINT_RTIE=1;打开中断 =0关闭中断

要在一个任务中开启时钟中断

来个小灯指示下!

好了到此移植结束!谢谢大家!:)

此资料仅是配合视频中的操作顺序,不详细之处请看视频。

视频下载地址:淘宝:http://shop57663993.taobao.com/

大学生电子制作店: 努力给你最好的,有我你更强! 淘宝:http://shop57663993.taobao.com/
回复 支持 反对

使用道具 举报

0

主题

33

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
468
威望
335
贡献
71
兑换币
18
注册时间
2008-12-6
在线时间
31 小时
3#
发表于 2009-12-12 11:24:38 | 只看该作者
东西不错啊,谢谢楼主了
回复 支持 反对

使用道具 举报

45

主题

277

帖子

0

精华

杰出人士

Rank: 12Rank: 12Rank: 12

积分
12254

论坛元老奖章

威望
1516
贡献
10106
兑换币
289
注册时间
2008-5-19
在线时间
316 小时
4#
 楼主| 发表于 2009-12-12 11:32:05 | 只看该作者
需要xs128系列的uc/os请留下email
回复 支持 反对

使用道具 举报

0

主题

72

帖子

0

精华

高级会员

Rank: 4

积分
593
QQ
威望
310
贡献
73
兑换币
16
注册时间
2008-12-6
在线时间
105 小时
5#
发表于 2009-12-12 11:33:48 | 只看该作者
我想看看,可以给我一份具体的吗,谢谢 jicheng0622@yahoo.com.cn
回复 支持 反对

使用道具 举报

45

主题

277

帖子

0

精华

杰出人士

Rank: 12Rank: 12Rank: 12

积分
12254

论坛元老奖章

威望
1516
贡献
10106
兑换币
289
注册时间
2008-5-19
在线时间
316 小时
6#
 楼主| 发表于 2009-12-12 11:50:19 | 只看该作者
邮件已发送成功!
jicheng0622@yahoo.com.cn   
请查收
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

注册会员

Rank: 2

积分
123
威望
171
贡献
22
兑换币
0
注册时间
2009-12-12
在线时间
0 小时
7#
发表于 2009-12-12 12:03:03 | 只看该作者
请给一份详细的资料  谢谢  1079899205@qq.com
回复 支持 反对

使用道具 举报

18

主题

271

帖子

0

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
9261

论坛元老奖章优秀会员奖章

威望
3592
贡献
5029
兑换币
6
注册时间
2009-10-17
在线时间
320 小时
8#
发表于 2009-12-12 13:19:28 | 只看该作者
发个给我看看   谢谢 楼主1987032230@163.com
回复 支持 反对

使用道具 举报

3

主题

27

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
343
QQ
威望
258
贡献
35
兑换币
0
注册时间
2009-12-4
在线时间
25 小时
9#
发表于 2009-12-12 13:30:56 | 只看该作者
回复 8# ssg322


    楼主 给我一份 谢谢
   lei.aren@yahoo.com.cn
回复 支持 反对

使用道具 举报

45

主题

277

帖子

0

精华

杰出人士

Rank: 12Rank: 12Rank: 12

积分
12254

论坛元老奖章

威望
1516
贡献
10106
兑换币
289
注册时间
2008-5-19
在线时间
316 小时
10#
 楼主| 发表于 2009-12-12 14:27:50 | 只看该作者
回复 支持 反对

使用道具 举报

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

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-11-6 13:38 , Processed in 0.217223 second(s), 37 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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