如何获取更多的信息
1.如何使用帮助文档
2.如何使用及设置BOOK Window
MDK使用方法及其它一些工具介绍(3)
MDK5.13工程代码的调试演示
工程代码的基本构成
MDK5.13编译流程简介及编译后文件说明
如何获取更多的信息
★其它的一些工具
1代码查看和编辑
.UE
下载地址
.Source Insight:适合于代码量比较大的工程
下载Version 4.0.0126
2接口工具
.串口助手
主页:http://www.daxia.com/
下载sscom
.网口助手
3文件比较器
Beyond Compare
免费下载,支持30天标准/专业版功能试用!
4代码编译
gcc
IAR
课后作业
1请大家用MDK创建一个基于芯片STM32F407ZG的工程,并添加代码,进行编译,通过软仿真进行调试。
要求启动代码用课程讲解的第二种方法添加。
2请大家下载Source Insight,UE,串口助手以及文件比较器Beyond Compare
Lesson3:探索cortex-M系列CPU的内核
Cortex-M内核架构及指令集简述
Cortex-M三兄弟体系架构概述
cortex-M0 Cortex-M3 Cortex-M4 的体系架构图
Tip1:何谓哈佛架构
简单学习ARM汇编语言
1ARM汇编语言的基本语法
ARM Compiler armasm User Guide Version 5.06
标号 即指令地址
操作码接作数1,操作数2,–;注释。
2常用的汇编指令介绍及使用演示
数据传输指令
示例:startup_stm32f407xx.s
F:\IOT\PRJ\first_prj\RTE\Device\STM32F407ZGTx\startup_stm32f407xx.s
在import main后增加:MOV R0, #0X123 ;mov指令操作直接数0X123
IMPORT __main
MOV R0, #0X123 ;mov指令操作直接数0X123
LDR R0, =SystemInit
BLX R0
LDR R0, =__main
BX R0
ENDP
先编译,编译通过
Build started: Project: first_prj
*** Using Compiler 'V6.19', folder: 'd:\Keil_v5\ARM\ARMCLANG\Bin'
Build target 'Simulator'
".\Objects\first_prj.axf" - 0 Error(s), 0 Warning(s).
Build Time Elapsed: 00:00:00
再执行调试:
点击reset,执行复位,程序光标停在刚才修改的代码上:
单步执行,0x123写入了寄存器:
内存访问指令
LDR/STR指令使用演示
删除刚才添加的MOV指令,新增加:
LDR R0, =NMI_Handler;通过标号NMI_Handler,将NMI_Handler写入R0
先编译,编译通过,再reset,执行复位,并单步执行:
LDR后,跳转到0x08000217:
程序流控制指令(跳转指令)
BL指令的用法示例
LDR R0, =NMI_Handler;增加以下指令:
BLX R0
编译并单步执行,
其他指令(可以看用户手册,在程序命令上光标位置按F1自动打开索引)
ARM汇编语言的后缀
Cortex-M架构CPU中汇编和C的混合编程
汇编代码中调用C函数
F:\IOT\PRJ\first_prj\RTE\Device\STM32F407ZGTx\startup_stm32f407xx.s为例:
示例代码:
IMPORT SystemInit
IMPORT __main
LDR R0, =SystemInit
BLX R0
LDR R0, =__main
BX R0
ENDP
其中的:IMPORT SystemInit
引入该文件的源文件为:
F:\IOT\PRJ\first_prj\RTE\Device\STM32F407ZGTx\system_stm32f4xx.c
执行方式为:先导入 SystemInit,再将入口地址写入R0,最后再跳转到R0执行。
这里R0的值更新为0x080002C9。
继续单步执行,跳转到systeminit函数:
C代码中调用汇编函数
tip1:如何写一个汇编函数
C代码中直接加入汇编语句
·嵌入的汇编语句
.内联的汇编语句
Tips:MDK注释显示中文
MDK的编码设置为chinese2312(Edit>Configuration>Editor>Encoding)。
Cortex-M架构CPU内核的寄存器及处理器模式
Cortex-M架构CPU内核的存储系统
Cortex-M架构CPU内核的中断和异常处理
Cortex-M架构CPU的复位及复位时序书
Tips 常用的帮助文档列表
ARM Development Toolst
MDK-ARM Primer
uVision Users Guide
lntroducing the ARM Compiler Toolchain
ARM instruction Set Users Guide
Compiler User Guide
Assembler User Guide
Linker User Guide
Libraries and Floating Point Support Guide
Migration and Compatibility
Creating Static Software Libraries with armar
Using the fromelf Image Converter
Errors and Warnings Reference Guide
Debugger Adapter User’s Guides
Getting Assistance
Licensing Users Guide