基于模型设计—自动代码生成之硬件驱动

基于模型设计—自动代码生成之硬件驱动

ID:9234262

大小:625.98 KB

页数:10页

时间:2018-04-24

基于模型设计—自动代码生成之硬件驱动_第1页
基于模型设计—自动代码生成之硬件驱动_第2页
基于模型设计—自动代码生成之硬件驱动_第3页
基于模型设计—自动代码生成之硬件驱动_第4页
基于模型设计—自动代码生成之硬件驱动_第5页
基于模型设计—自动代码生成之硬件驱动_第6页
基于模型设计—自动代码生成之硬件驱动_第7页
基于模型设计—自动代码生成之硬件驱动_第8页
基于模型设计—自动代码生成之硬件驱动_第9页
基于模型设计—自动代码生成之硬件驱动_第10页
资源描述:

《基于模型设计—自动代码生成之硬件驱动》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、基于模型设计—自动代码生成之硬件驱动声明:本文是《基于模型设计—自定义目标系统配置指南》的续集,主要和大家分享RTW工具箱做自动代码生成时,硬件驱动的编写方法;本文涉及两方面的技术难点CMEXS函数和TLC文件的编写,对这两方面不熟悉的童鞋可以先看看相关的Help文档。通过硬件驱动模块和上层控制模块的结合,可以实现嵌入式系统C代码的一键式生成,所生成的代码无需做任何修改就可以直接下载到单片机中。本教程开发环境如下:Matlab2010a+CodeWarriorV6.3+Mc9s08dz60欢迎汽车电子工程师加入QQ群:89462451,讨论Matlab在汽车行业的

2、应用,分享自己的独门经验。中断、IO、ADC、TPM、CAN、CCP、MCG……下一个模块硬件驱动,你也可以~~~tntuyh@163.comGodman2011.8.20附件列表:dz60——该文件夹为自定义目标系统文件系统TLC文件、主函数TLC文件、_file_processTLC文件、_callback_handler文件、_make_rtw_hook文件、模块TLC文件(及C-MexS函数)blocks——该文件夹为中断模块+数字输出模块的硬件驱动、interrupt_init.c—中断模块CMEXS函数interrupt_init.tlc—对应的TLC

3、文件dz60_dio_out.c—数字输出模块CMEXS函数dz60_dio_out.tlc—对应的TLC文件demos——该文件夹为测试用demo文件interrupt_demo.mdl—测试模型,实现500ms和100ms任务基于模型设计—自动代码生成之硬件驱动...........................................................31、自定义目标创建...................................................................................

4、..32、软件整体架构.........................................................................................33、硬件驱动编写.........................................................................................53.1主函数文件硬件驱动......................................................................53.2

5、中断模块硬件驱动..........................................................................53.3数字输出模块硬件驱动...................................................................91基于模型设计—自动代码生成之硬件驱动基于模型设计—自动代码生成之硬件驱动1、自定义目标创建本文的硬件平台为Mc9s08dz60,Matlab没有相应目标系统和现成使用模块,所以需要自己创建自定义目标系统和编写相应的硬件驱动。关于自定义目标系

6、统的创建可以参考《基于模型设计—自定义目标系统配置指南》。DZ60的自定义目标系统源代码请参考附件中dz60文件夹下的各文件,此处不再累述。通过setup.m文件可以自动向Matlab中添加该目标系统。2、软件整体架构软件架构对嵌入式系统的重要性,就不再多说了。这里选择较为简单的中断驱动方式来实现整个嵌入式软件的调度。图1软件整体架构如上图所示,所有的程序处理都是通过RTC中断来实现的,配置RTC模块每隔2基于模型设计—自动代码生成之硬件驱动10ms产生一次中断,并对各个任务进行计时(如flag_100ms),当计时达到时调用相应的任务处理函数(如task_100

7、ms),而主函数中只对整个工程进行初始化(如interrupt_demo_initialize),在for循环中无需其余操作。RTC中断处理函数部分通过中断模块及TLC文件来对生成的代码进行控制,后文将详述。在模型搭建过程中,只需要调用中断模块,通过修改FunctionCallSystem中的内容即可以实现各种任务的调度,如下图所示:3基于模型设计—自动代码生成之硬件驱动图2软件架构之模块搭建PS:当然,在实际的产品会根据项目需要采用不同的软件架构来实现任务调度,其余架构及嵌入式操作系统的嵌入都可以在本文的基础上进行修改来满足项目需求。非常期望和各位探讨关于嵌入式

8、系统软件架

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。