- 1、本文档共32页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
4.1 SPCE061A编程基础
Sunplus SPCE061A 微控制器
SPCE061A编程基础
大纲
汇编语言程序的应用举例分析
C语言程序的应用举例分析
堆栈、函数调用参数传递
FLASH读写操作
汇编语言程序的应用举例分析
我们通过程序实现1-100累加和来学习基于SPCE061A单片机的汇编语言编制程序方法、单步调试程序方法、查看结果方法
汇编语言的程序结构
顺序结构
分支结构
循环结构
程序代码分析
μ’nSP的数制及其后缀规定
数制
后缀
二进制
B
八进制
O或Q
十进制
D或不写
十六进制
H
ASCII字符串
用双引号或单引号括起
单步调试程序
查看程序结果
C语言程序的应用举例分析
程序:实现1-100累加和
程序代码分析
C语言的程序结构
顺序结构
分支结构
循环结构
看门狗
SPCE061A的清狗周期为0.75S;
Watchdog计时时钟来源:4Hz时基;
清看门狗操作寄存器:
P_Watchdog_Clear(0x7012H)
清狗操作:
在每个0.75S的清狗周期里P_Watchdog_Clear写入0x0001。
程序中清看门狗
汇编程序:
……
R1 = 0x0001
[P_Watchdog_Clear] = R1
……
C语言:
*P_Watchdog_Clear=0x0001
堆栈在函数传递方面的应用
堆栈的含义
堆栈是在内存RAM区专门开辟出来的按
照“先进后出”原则进行数据存取的一种
工作方式。
堆栈的作用
主要用于子程序调用及返回和中断处理
断点的保护及返回。
SPCE061A的堆栈
实例分析
C程序中调用汇编函数
汇编程序中调用C函数(过程)
C和汇编的函数相互调用
函数调用协议
指不同的子程序代码之间形成的一种握手通讯接口,并完成一个子程序到另外一个子程序的参数传递和控制,以及定义出子程序调用与子程序返回值的规则
函数调用协议
参数传递
堆栈维护及其排列
函数返回值
寄存器数据暂存方式
C程序中调用汇编函数
堆栈的变化
C程序中调用汇编函数
观察结果
打开Memory,Watch和Rigester三个调试窗口
汇编程序中调用C函数(过程)
堆栈的变化
汇编程序中调用C函数
C程序在调用汇编函数结论
C程序在调用汇编函数时的参数传递是将参数按照从右到左的顺序依次压入堆栈,然后才将PC和SR寄存器的值压入堆栈
汇编程序调用C函数结论
汇编程序调用C函数时的参数传递也是按照从右到左的顺序需要编程者自己在汇编程序里面将参数入栈,最先入栈的参数是C函数最右边的参数,最后入栈的参数才是C函数最左边的参数
片内Flash 程序存储器
32K字的Flash被划分为128个页(每个页存储容量为256个字),它们在CPU正常运行状态下均可通过程序擦除或写入。
程序对Flash的操作主要是通过寄存器0x7555 P_Flash_Ctrl以及目标Flash的操作;这样可以对Flash进行页擦除、写入一字、写入多字的动作。
FLASH操作对寄存器的操作
程序对Flash的操作主要是通0x7555单元寄存器P_Flash_Ctrl以及目标地址Flash的操作;这样可以对Flash进行页擦除、写入一字、写入多字的动作。
对命令字的不同组合,形成对FLASH的不同操作。
FLASH操作实例
向指定单元写入多个字
凌阳科技教育推广中心竭诚为您服务
凌阳科技大学计划网站:
凌阳科技大学计划邮箱:
E_mail: unsp@
凌阳科技大学计划客服中心:
Tel: 0102911
凌阳科技大学计划技术支持中心:
Tel: 0102919
文档评论(0)