UCOSII在51单片机运行成功.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
UCOS II 在 51 单片机运行成功 以下是我的移植过程: 1、新建一个文件夹 aduc845ucosii 来存放整个工程,再在 aduc845ucosii 下建立两个目录: aduc845ucosii 下建立两个目录: os 和 out。 os 存放所有源代 码, out 存放编译链接产生的中间文件和最终的输出文件。 2、建立 KEILC 工程,芯片选择 ADUC845 并且加入默认的 启动代码 START_AD.A51 3、把所有用到的源文件都复制到 OS 文件夹内, 也就是现在 在 OS 内所有文件。 4、在 KEIL 的 WORKSPACE 下 Source Group 1 右击, 把 OS 文件夹内以下文件加入源码:uCOS_II.C 文件夹内以下文件加入源码: uCOS_II.C 、 OS_CPU_C.C 、 OS CPU A.ASM、test.c、serial.c、serial.h。然后还得把 KEIL 安装目录下的 XX\KEIL\C51\LIB 下的 C51BFPC.LIB 和 C51L.LIB 加入源码组。这里要解释一下: uCOS_II.C 是内核 文件, OS_CPU_C.C 、 OS_CPU_A.ASM 是移植文件, test.c 是 main 函数文件, serial.c、 serial.h 是 test.c 里用到串口才把 它们加进源码, 而 C51BFPC.LIB 和 C51L.LIB 这两个文件据 果子说是因为用到了浮点运算,要加入这两个库文件。加入 的文件最好是按顺序加入,特别是两个库文件,如果反了, 就可能出现运行不了或者不正确。 5、打开 Options for Target Target 1,切换到 Target 选项卡, 把 Memory Model 改为 Large: variables in XDATA 。再切换到 Output 选项卡,点击 Select Folder for Objects, 选择 out 文件 夹,勾选Create hex File,按OK确定,再切换到Listing选项卡, 点击Select Folder for Listings,选择 out 文件夹,按 OK 确定。 确定关闭。 6、在 Source Group 1 右击,打开 Options for GroupSource Group 1, 在 Properties 选项卡下激活 Genrate Assembler SRC File 和 Assemble SRC File 这两个选项, 并且在它们前打对号。 确定关闭。 7、因为只本移植只须用到 ADUC845 片上 2K 的 XRAM ,故 修改 START_AD.A51 文件的以下内容: XRAMEN EQU 1 ; XDATALEN EQU 0x800 ; XBPSTACK EQU 1 ; XBPSTACKTOP EQU 0x07FF+1; 如果是果子的源文件移植过来的话,要进行下列改动,以便 链接文件: 1)打开 test.c 把#include lt;includes.hgt;改为 #include includes.h” 2)把 #include lt;os_core.cgt; #include lt;os_flag.cgt; #include lt;os_mbox.cgt; #define LenTxBuf #define LenTxBuf 200 #define LenRxBuf #define LenRxBuf 30 #include lt;os_mem.cgt; #include lt;os_mutex.cgt; #include lt;os_q.cgt; #include lt;os_sem.cgt; #include lt;os_task.cgt; #include lt;os_time.cgt; 改为 #include os_core.c #include os_flag.c #include os_mbox.c #include os_mem.c #include os_mutex.c #include os_q.c #include os_sem.c #include os_task.c #include os_time.c 为了适合小于 2K 为了适合小于 2K 的内部 XRAM ,须改下列两点 3 3)把 serial.h 里的 #define LenTxBuf2000#define LenRxBuf50#define MaxLenStr100 #define LenTxBuf 2000 #define LenRxBuf 50 #define MaxLenStr 100 改为: 改为: #define M

文档评论(0)

zhaohuifei + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档