- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
spmc75单片机c和汇编混合编程
SPMC75 单片机C 和汇编混合编程
发布:2011-8-21 | 作者:—— | 来源:liubangming | 查看:484 次 | 用户关注:
摘 要:本文主要介绍凌阳16位变频控制单片机SPMC75 系列单片机地C和ASM (汇编)混合编
程的应用。关键词:SPMC75 嵌入式汇编1 引言 支持C语言几乎是所有微控制器程序设计的一项基
本要求,当然SPMC75 系列单片机也不例外。μnSPTM 指令结构的设计就着重考虑对C语言的支持,GCC
就是一种针对μnSPTM 操作平台的ANSI-C编译器。但是在应用中对于程序的设计,特别是C和ASM
混合使用的时候有些地方是需要注意的,在C 中如何嵌入ASM也
摘 要: 本文主要介绍凌阳16 位变频控制单片机SPMC75 系列单片机地C和ASM
(汇编)混合编程的应用。
关键词:SPMC75 嵌入式汇编
1 引言
支持C语言几乎是所有微控制器程序设计的一项基本要求,当然SPMC75 系列单片机
也不例外。μnSPTM 指令结构的设计就着重考虑对C语言的支持,GCC 就是一种针对
μnSPTM 操作平台的ANSI-C 编译器。但是在应用中对于程序的设计,特别是C和ASM
混合使用的时候有些地方是需要注意的,在C 中如何嵌入ASM也是一个不可回避的问题。
2 芯片特性简介
SPMC75 系列单片机是由凌阳科技设计开发的16 位微控制器芯片,其内核采用凌阳科
技自主知识产权的μnSP微处理器。SPMC75 系列单片机集成了能产生变频电机驱动的
PWM发生器、多功能捕获比较模块、BLDC 电机驱动专用位置侦测接口、两相增量编码器
接口等硬件模块;以及多功能I/O 口、同步和异步串行口、ADC、定时计数器等功能模块,
利用这些硬件模块支持,SPMC75 可以完成诸如家电用变频驱动器、标准工业变频驱动器、
多环伺服驱动系统等复杂应用。下面介绍SPMC75 系列单片机资源特性:
3 函数调用
3.1 调用协议
模块代码间的调用,是遵循μnSPTM体系的调用协议 (Calling Convention)。所谓调
用协议,是指用于标准子程序之间一个模块与令一个模块的通信约定。即使两个模块是以不
同的语言编写而成。
调用协议是指这样一套法则:它使不同的子程序之间形成一种握手通信接口,并完成一
个子程序到另一个子程序之间的参数传递和控制,以及定义出子程序调用与子程序返回值的
常规规则。
调用协议包括以下相关要素:
(1)调用子程序间的参数传递;
(2)子程序返回值;
(3)调用子程序过程中所用堆栈;
(4)用于暂存数据的中间寄存器。
μnSPTM调用协议的内容如下:
1、由于C 编译器产生的所有标号都以下划线 (_)为前缀,而C程序在调用汇编程序时要
求汇编程序名也以下划线 (_)为前缀。
2、参数以相反的顺序 (从右到左)被压入堆栈中。必要时所有的参数都被转换成其在函数
原型中被声明过的数据类型。但如果函数的调用发生在其声明之前,则传递在调用函数里的
参数不会进行任何数据类型转换的。
3、各参数和局部变量在堆栈中的排列如图3-1所示。
4、16-Bit 的返回值放在寄存器R1 中,32-Bit 的返回值存入寄存器R1和R2 中,其中低字
节在R1 中,高字节在R2 中。若要返回结构或指针需要在R1 中存放一个指向结构的指针。
5、编译器会产生prolog/epilog 过程动作来暂存或恢复PC、SR及BP寄存器。汇编器则通
过CALL指令可将PC和SR 自动压入堆栈中,而通过RETF或RETI指令将其自动弹出堆
栈。
6、编译器所认可的指针是16-Bit 的。函数指针实际上并非指向函数的入口地址,而是一个
段地址的向量_function_entry,在该向量的两个连续Word 的数据单元存放的值才是函数的
入口地址。
图3-1 程序调用的堆栈使用
3.2 举例说明
◆ C程序中调用ASM 函数
【例3-1】 无参数传递的C语言调用ASM 函数。
/**/
/* C 程序
/**/
externvoid F_Function(void);
main()
{
/**/
/* C 程序调用 ASM 函数
/**/
F_Function();
while(1){;}
}
/**/
/*ASM 程序
/**/
//
// Function:void F_Function(void);
// -Description:ASM 函数
// -
您可能关注的文档
- nlrp3炎性小体介导的炎性过程在肠易激综合征发生中的作用.pdf
- n阶线性微分方程解的存在与唯一性硕士论文.pdf
- oraclegoldengateoracletomysql配置.pdf
- pa62fehdpet共混纤维形态结构.pdf
- PID算法97330.pdf
- PID算法97348.pdf
- PID算法97380.pdf
- PID算法入门.pdf
- phanerochaetesp.hsd的锰依赖性过氧化物酶产酶优化及微菌丝球强化处理染料废水.pdf
- PID算法软件编写详解(重点推荐).pdf
- 2025年数字娱乐产业数字影视产业市场分析报告.docx
- 智能硬件企业生态构建2025年案例集与竞争格局分析.docx
- 数字艺术创作领域2025年交易平台构建模式与艺术市场投资风险评估研究报告.docx
- 聚焦2025年:保险产品创新应对气候变化风险与保险业可持续发展研究报告.docx
- 凯捷管理咨询公司企业介绍.pptx
- 数字艺术市场潜力分析:2025年创作与交易平台发展报告.docx
- 2025年金融科技在金融行业智能投顾应用研究报告.docx
- 新型茶饮品牌2025年扩张策略与市场占有率研究报告.docx
- 2025年数字娱乐产业数字文化娱乐产业内容创作与传播效果研究报告.docx
- 农村零售市场消费升级趋势下渠道拓展的路径选择与实施策略研究报告.docx
文档评论(0)