




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一步:创建飞思卡尔单片机工程1、 打开Freescale CodeWarrior后出现选项如下:2、 点击“Create New Project”后进入如下界面:3、 在“Select the derivative you would like to use”下面的框中选中“MCS912DG128B”,在右侧的“Choose your default connextion”下面的框中选中“TBDML”(使用BDM下载仿真调试程序的情况下),“下一步”出现如下界面:4、 在“C”前面选中,在“Project name”下面写上你想要保存功能的名字(必须是英文的),下一步后出现如下界面:5、 这个界面是要你选择额外的文件添加到工程中的,一般都不用了,要添加文件也可以在以后的工程中添加的了。直接下一步出现如下界面:6、 这个界面是要你确定创建工程的时候进行怎么样的初始化操作(把工程的程序某些硬件初始化一下),这里也不用管了,添加操作系统需要修改的东西不少,这些加多了也没有什么用处,所以选择“None”就可以了。“下一步”之后出现以下界面:7、 最上面的两个选项“minimal startup code”(最小的开始代码)和“ANSI startup code”(ANSI标准的开始代码),选择“minimal startup code”;中间的“Which memery model shall be used”(哪种存储模式将被选用),三个选项“Small”(最小)、“Banked”(块)、“Large”(大),选择“Small”可以了;最下面的选项“Select the floating point format supperted”(选择提供浮点数类型)的三个选项“None”(程序中不使用浮点数运算)、“float is IEEE32,double is IEEE32”(程序中定义的float类型变量位IEEE的32位标准、定义的double类型变量位IEEE的32位标准)、“float is IEEE32,double is IEEE64” (程序中定义的float类型变量位IEEE的32位标准、定义的double类型变量位IEEE的64位标准),这个选项就看你的程序是用在什么领域了,要是用到数学运算要求精度高的一般都选择“float is IEEE32,double is IEEE64”了,但是选择这个的时候要注意在程序中进行运算的时候遇到有float和double交叉的时候一定要小心处理,多方试验确保程序不在浮点数不一致上乱跑。“下一步”后到如下界面:8、 这个直接选“No”再按完成就可以了,废话不多说。来到创建工程完成了的界面:9、 现在就要开始拿起砍刀准备对刚刚创建的工程进行大砍特砍了,不过在砍之前还是要准备点东西的,那就是必要的操作系统的“.C”和“.H”文件,清单如下:INCLUDES.H、MYmain.H、OS_CFG.H、OS_CORE.C、OS_CPU.H、OS_CPU_C.C、OS_FLAG.C、OS_MBOX.C、OS_MEM.C、OS_MUTEX.C、OS_Q.C、OS_SEM.C、OS_TASK.C、OS_TIME.C、TaskStart.c、uCOS_II.C、uCOS_II.H,其中的MYmain.H文件是本人MC9S12DG128B单片机寄存器映射表文件,TaskStart.c是操作系统的开始任务文件(操作系统开始的时候必须要有至少一个的任务运行),其它都是与操作系统内核文件的一部分了。,以下这些文件为移植操作系统时候的校准文件,可以与自己创建的基于操作系统的工程对比这几个文件中的不同完成修改,其中的TBDML_linker.prm内容是一定要修改才能完成移植的,。10、 现在开始砍刚才创建的工程文件了。首先,从工程中移除以下文件:mc9s12dg128.h、mc9s12dg128.c、derivative.h和ansisf.lib文件。在main.c中将#include derivative.h /* derivative-specific definitions */语句删除,后添加语句#pragma LINK_INFO DERIVATIVE mc9s12dg128,得到的最后结果如下所示:11、 将文件INCLUDES.H、MYmain.H、OS_CFG.H、OS_CORE.C、OS_CPU.H、OS_CPU_C.C、OS_FLAG.C、OS_MBOX.C、OS_MEM.C、OS_MUTEX.C、OS_Q.C、OS_SEM.C、OS_TASK.C、OS_TIME.C、TaskStart.c、uCOS_II.C、uCOS_II.H复制到工程所在的文件夹下的子文件夹Sources中,在添加以上文件以前如下所示:12、 将第9点中黄色背景的文件复制到工程文件夹下Sources文件夹中,效果如下:13、 现在开始打开“移植操作系统用到的文件”这个文件夹中的main.C文件,将文件中的内容复制后覆盖工程项目中的main.c文件内容,再修改部分main.c里面的内容得到如下结果:#include /* common defines and macros */#pragma LINK_INFO DERIVATIVE mc9s12dg128b#include includes.h#define EXT#define _cplusplusvoid main(void)EnableInterrupts;DDRB=0xFF;DDRK&=0xDF;DDRK|=16;OSInit();Semprintp=OSSemCreate(1);TaskStartData.PPAGE = 0x38;/*创建任务有两种方式:OSTaskCreate( void(*task)(void *pd), /指向任务的指针 void *pdata, /传递给任务的参数 OS_STK *ptos, /指向任务堆栈栈顶的指针 INT8U prio /任务的优先级 );OSTaskCreateExt( void (*task)(void *pd), /指向任务的指针 void *pdata, /传递给任务的参数 OS_STK *ptos, /指向任务堆栈栈顶的指针 INT8U prio, /任务的优先级 INT16U id, /任务的标识 OS_STK *pbos, /任务堆栈栈底的指针 INT32U stk_size, /任务堆栈的容量 void *pext, /指向附加数据域的指针 INT16U opt /用于设定操作选项 );*/OSTaskCreate(void *)0x8000, (void*)&TaskStartData, (void*)&TaskStartStkTASK_STK_SIZE-1, 8);OSStart();14、 下一步就有开始添加实时操作系统文件到工程的Source下拉栏中了,操作方式是:在工程窗口的左侧中的Sources中右击鼠标后出现如下界面:,在界面中选中Add filers将弹出选框如下:在选框都进入到Sources文件夹下,按住键盘Ctrl按键后选中OS_CPU_C.C、uCOS_II.C和TaskStart.c三个文件得到如下界面效果:15、 将TaskStart.c文件下的内容改成如下程序段:#include includes.h#define EXT extern#pragma CODE_SEG TaskStartCode/save the TaskStart code in banked flashvoid TaskStart(TASKDATA* pdata);void TaskStart(TASKDATA* pdata) /主任务 #if OS_CRITICAL_METHOD = 3OS_CPU_SR cpu_sr;#endifINT8U err;RTICTL = 0x5A;/98Hz RTI ticksCRGINT |=0x80; OSTimeDlyHMSM(0,0,0,50);/开机自动延时50msfor(;) OSTimeDly(1);#pragma CODE_SEG DEFAULT16、 将Project.prm文件内容改成“移植操作系统用到的文件”文件夹中的。17、 创建一个main.h文件,复制如下内容到这个文件中:/all the global defines should be in this .h file/all the global variables should be defined in this .h file with EXT/all the global function should be declared in this .h file#include MYmain.Htypedef unsigned char byte;typedef unsigned int word;typedef unsigned long dword;typedef unsigned long dlong2;#define CRGFLG_LOCK (*(volatile unsigned char*)(0x00000037)#define TASK_STK_SIZE 200typedef structINT8UPPAGE;TASKDATA;/*/global variables definition/*/EXT OS_STK TaskStartStkTASK_STK_SIZE;EXT OS_EVENT *Semprintp;EXT INT8U err;EXT TASKDATA TaskStartData;/*/global functions declaration/their define is in Hardware.c or Userlib.c (except main)/*/18、 在main.c和TaskStart.c文件中的头上的#define EXT extern或者#define EXT 下面一行加上一句话#incude “main.h”;19、 将TaskStart .c文件改成如下程序:#include includes.h#define EXT extern#include main.h#pragma CODE_SEG TaskStartCode/save the TaskStart code in banked flashvoid TaskStart(TASKDATA* pdata);char i=0;void TaskStart(TASKDATA* pdata) /主任务 #if OS_CRITICAL_METHOD = 3OS_CPU_SR cpu_sr;#endifINT8U err;RTICTL = 0x5A;/98Hz RTI ticksCRGINT |=0x80; OSTimeDlyHMSM(0,0,0,50);/开机自动延时50msfor(;) i+; PORTB=i; OSTimeDly(10);#pragma CODE_SEG DEFAULT20、 按F7编译你建立的工程,发现没有错误(有一两个警告不用管了,那是正常的),就按F5下载程序到单片机上吧,进入调试界面后按F
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 企业安全干部培训通知课件
- 2025人力资源经理劳动合同(标准版)
- 出口行销学课件ch7
- 2025烘焙食品批发合同
- 冲压生产安全培训课件
- 2025【合同范本】简约搬运服务合同协议书
- 2025KA卖场管理及合同谈判策略((版,内部教学资料))
- 纯电动公交驾驶操作教材讲课文档
- 2025物业员工合同
- 潍坊电子发票管理办法
- 中药调剂技术-课件
- 水轮发电机讲义课件
- 姜黄素合成路线
- 高中通用技术会考试题及详解
- 安全教育:不私自离开幼儿园
- 泛光施工招标文件
- 刑法各论(第四版全书电子教案完整版ppt整套教学课件最全教学教程)
- 人工挖孔桩施工监测监控措施
- 第7章:方差分析课件
- 国家职业技能标准 (2021年版) 6-18-01-07 多工序数控机床操作调整工
- 办公楼加层改造施工组织设计(100页)
评论
0/150
提交评论