这里写目录标题

  • 一、 Keil环境的配置
    • 1、MDK532的安装
    • 2、安装STM32 pack
  • 二、在Keil中创建STM工程
  • 三、仿真调试
    • 1、设置仿真器
    • 2、编译调试
  • 四、HEX文件分析
  • 五、总结

一、 Keil环境的配置

1、MDK532的安装

下载好需要的安装包后,双击mdk531.exe,进入安装。

进入安装的界面,点击next

勾选 I agree to all the terms of the preceding License Agreement.,然后点击next

更改安装目录

填写First Name、Last Name、Comoany Name和E-mail,这里可以随意填写。

等待安装…

点击Finish。

点击OK,会进入各种pack的安装,这时关闭此页面,进行手动安装。!

2、安装STM32 pack

在文件中双击打开Keil.STM1xx_DFP.2.1.0.pack,进入安装界面。

出现安装界面后,点击next开始安装

点击Finish,完成安装。

Keil的环境配置就完成了。

二、在Keil中创建STM工程

打开Keil界面,点击Project->New μVision Project,输入工程名进行保存。

选择单片机的芯片,可根据实际需求进行选择。

接下来勾选CMSIS下的CORE和Device下的StartUp。因为需要有启动程序,来使单片机芯片可以正常执行我们编写的代码。


点击Target1左边的加号,右键Source Group 1,添加新的文件。

这里选择汇编文件,点击Asm File (.s),输入文件名,然后点击Add。

在新建文件中写入如下代码:

 AREA MYDATA, DATAAREA MYCODE, CODEENTRYEXPORT __main__mainMOV R0, #10MOV R1, #11MOV R2, #12MOV R3, #13;LDR R0, =func01BL   func01;LDR R1, =func02BL   func02BL    func03LDR LR, =func01LDR PC, =func03B .func01MOV R5, #05BX LRfunc02MOV R6, #06BX LRfunc03MOV R7, #07MOV R8, #08   BX LR

三、仿真调试

1、设置仿真器

点击Project,选中Options for Target 1…


选择Debug,勾选 Use Simulator,表示使用软件仿真;勾选Run to main(),表示跳过汇编代码,直接跳转到main函数开始仿真;分别修改Dialog DLL为 “DARMSTM.DLL ”和“TARMSTM.DLL”;修改 Parameter为-pSTM32F103ZE,然后确认。

2、编译调试

依次点击左上窗口build、rebuild,然后点击Start Debug Session进入调试。

点击左上角的按钮,得到最终结果:寄存器的值与设置的值一致。

四、HEX文件分析

创建hex文件

打开hex文件,可以看到是一串十六进制

第一行内容分别是0x02,0x00,0x00,0x04,0x08,0x00,0xF2。
0x02:该行数据中有两个数据
0x00 0x00:本行数据的起始地址位
0x04:用来标识扩展线性地址的记录,该字节还可以是其他值,下面是其他值的含义
00:用来记录数据,HEX文件的大部分记录都是数据记录
01:用来标识文件结束,放在文件的最后,标识HEX文件的结尾
02:用来标识扩展段地址的记录
03:开始段地址记录
05:开始线性地址记录
0x08 0x00:该行两个字节的数据,数据类型是 04 ,即该行记录的是一个拓展地址(0x08 0x00) 是地址信息,用法是将该地址(0x0800<<16) 后作为基地址
0xF2:校验和,校验和= 0x100 - 累加和

五、总结

此次实验因为对汇编语言不了解,以及对keil软件操作的不熟悉,导致很多问题出现,但最终通过参考资料得以解决。后续学习应该掌握汇编语言。

基于STM32汇编程序的编写相关推荐

  1. 【完成一个基于STM32汇编程序的编写】

    完成一个基于STM32汇编程序的编写 一.keil环境搭建 二.stm32程序 1.新建工程 2.配置环境 3.编译调试 三.分析HEX文件 总结 提示:以下是本篇文章正文内容,下面案例可供参考 一. ...

  2. Keil嵌入式开发环境下完成一个基于STM32汇编程序的编写

    文章目录 一.keil的安装 二.新建工程 三.配置环境 3.1选择设备 3.2选择运行环境 3.3添加源文件 四.测试代码 4.1源码 4.2仿真器设置 4.3编译调试 五.分析HEX文件 六.总结 ...

  3. Keil环境下完成一个基于STM32汇编程序的编写

    本文内容:\color{red}{本文内容:}本文内容: 1)记录build生成的 hex文件各段的大小,了解Hex文件格式及其前8个字节内容含义: 2)学习在没有硬件条件下进行仿真调试的方法,观察A ...

  4. 搭建keil开发环境,完成一个基于STM32汇编程序的编写

    一.环境配置与搭建 1.准备安装 下面附上百度网盘链接,请自行下载: mdk531的安装: 链接:https://pan.baidu.com/s/1ttrDhv6kXgAvPiYINf9iGw 提取码 ...

  5. 搭建并配置Keil嵌入式开发环境,完成一个基于STM32汇编程序的编写

    文章目录 一.keil环境搭建 二.stm32程序 1.新建工程 2.配置环境 3.编译调试 三.分析HEX文件 四.总结 五.参考链接 一.keil环境搭建 百度网盘分享下载 mdk531安装 链接 ...

  6. 搭建并配置Keil嵌入式开发环境,完成一个基于STM32汇编程序的编写。

    keil的使用: 一.首先我们要养成一个习惯:最好先建立一个空文件夹,把您的工程文件放到里面,以避免和其他文件混合,如下图笔者先创建了一个名为"Mytest"文件夹: 二.点击桌面 ...

  7. 用keil软件完成STM32汇编程序的编写

    目录 一:在keil软件环境下创建工程 二:汇编程序的编写 三:分析生成的HEX文件 四:总结 五:参考文献 一:在keil软件环境下创建工程 点击project,然后点击New uVision Pr ...

  8. 基于STM32安装Stm32CubeMX,配合Keil完成LED流水灯和USART串口通讯程序,及其管脚的时序波形观察

    目录 一.使用HAL库完成LED流水灯 (一).用STM32CUBEMX生成工程文件 (二).用Keil仿真调试并生成hex文件 (三).用STM32串口烧录程序 (四).实物连接 二.使用HAL库完 ...

  9. HIH8121(HIH8000系列)温湿度传感器驱动代码-基于STM32 HAL库

    HIH8121温湿度传感器代码基于STM32 HAL库 HIH8121传感器简介 驱动代码.c 驱动代码.h main函数 HIH8121传感器简介 HIH8121是霍尼韦尔公司生产的测量温湿度参数一 ...

最新文章

  1. 谈谈 Swift 中的 map 和 flatMap
  2. python与人工智能编程-人工智能与Python关系浅谈
  3. 从微信AI首席顾问到金融文档智能
  4. .Net新手☞数据库操作
  5. 正式开放 | 阿里云 10 亿级镜像服务正式支持 Helm Charts,云原生交付再加速!
  6. OpenTSDB部署与使用
  7. 在IFrame中查找IFRAME中的元素的方式
  8. 学习Android MediaPlayer
  9. .NET Core 反射获取所有控制器及方法上特定标签
  10. sql in转换为join_同一个SQL语句,为啥性能差异咋就这么大呢?(1分钟系列)
  11. oracle截取时间函数6,SQL 取日期部分函数
  12. 2010年广州市公务员考试行测真题及答案解析
  13. IODE海洋数据门户平台简述
  14. pic32mx是什么cpu_DM320105 | Microchip 入门套件, XLP, PIC处理器系列 (MIPS32内核) MCU, PIC32 | RS Components...
  15. 程序员版「成语新解」,万万没想到你们竟是这样的……
  16. mysql stop failed_Mysql报错:Failed to stop mysqld.service: Unit mysqld.service not loaded.
  17. java发邮件的代码
  18. N76E003开发笔记(关于使用N76E003过程遇到的问题)
  19. 用STM32F103C8T6实现红绿蓝LED流水灯
  20. 金蝶正式宣布进军医疗市场

热门文章

  1. 通过javaMail发送邮件,可选添加多个收件人,密送,抄送,多个附件
  2. 用Arduino制作一个功能最基础的辉光钟
  3. charles+夜神模拟器抓包
  4. 程序文件直接拷贝到pda设备 (USB连接pc pda wince6.0 C#)
  5. 计算机中能够与CPU直接连接的存储器是,3.5 主存储器与CPU的连接
  6. Win10查看系统日志
  7. 关于EasyNVR拉流摄像头的视频流存在视频流锁定机制的问题说明
  8. 无线移动通信中的多普勒效应及其消除方法
  9. linux4.6 EC11旋转编码器的驱动
  10. 清除console密码重起后,部分版本又会要输入默认console密码