这里写目录标题

  • 1.新建工程
  • 2.配置环境
    • 2.1 选择设备
    • 2.2 选择运行环境
    • 2.3 添加源文件
  • 3.测试代码
    • 3.1 源代码
    • 3.2 仿真器设置
    • 3.3 编译调试
    • 3.4生成的HEX文件
  • 4.总结
  • 5.参考文献

1.新建工程

打开Keil uVision5

点击最上面一行的project,如下图所示

在弹出的窗口点击选项New uVision Project,创建新的工程;具体如下图所示;

点开后,设置项目工程路径、项目名称并保存

2.配置环境

2.1 选择设备

设置工程的目标环境,本文基于STM32F103ZET6,因此在弹出的窗口选择相应的选项,点击保存即可
步骤如图所示:


如果无法找到该窗口,可以在工具栏点击魔术棒图标,如下图所示;

或者在菜单栏点击project,然后选择Options for Target即可,具体如下图所示;

2.2 选择运行环境

ARM的CMSIS已经把开发所需要的软件组件都封装好了,因此直接选择打勾即可;

  1. CMSIS下选择CORE;
  2. Device下Startup,其中包含了启动文件;

如下图所示

点击ok即可。

2.3 添加源文件

鼠标右键单击Source Group 1,选择Add New Item to Group,具体如下图所示;

  1. 选择 Asm File (.s) ,创建汇编文件;
  2. 设置源文件的名称;
  3. 点击保存;
    如图所示(这里重做了一次之前的步骤将文件名改为了test1 因为之前文件夹里有一个TEST)

3.测试代码

3.1 源代码

汇编语言代码如下:

 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

3.2 仿真器设置

设置硬件仿真器,具体根据自己的实际情况进行选择,如下图所示;
点击魔法棒

选择左边的Use Simulator,因为是网络仿真,没有芯片加持;

3.3 编译调试

按照下图所示,编译工程并进入调试模式;

最后看到,寄存器R5,R6,R7,R8的值与预期的结果不同

通过查阅资料,将debug调节为下图所示可以实现正常仿真

再次调试运行,寄存器 R5,R6,R7,R8 的值和程序设置一致。

3.4生成的HEX文件

以记事本打开HEX文件如下图所示

4.总结

Keil环境下创建STM32汇编语言工程还是有难度的,因为对仿真软件的不熟悉,在调试代码环节遇到了许多问题,多亏了网上的大佬们的博客才得以解决,对STM32的理解还不够。

5.参考文献

https://blog.csdn.net/ssj925319/article/details/111868500.

用Keil uVision5创建纯汇编语言的STM32工程相关推荐

  1. Keil uVision5 创建STM32F4

    这篇文章不介绍Keil uVision5的安装,默认大家都已经安装成功了,同时也安装了STM32F4xx相应的包 1.先创建Ts文件夹,工程的根目录 2.在Ts根目录下创建子目录,起码要创建前3个,后 ...

  2. MDK-Arm Keil uVision5 创建STM32工程

    一.准备工程·芯片/设备包 Step-1  安装"芯片/设备包" "Project -> Manager -> Pack Installer" ,打 ...

  3. keil添加hal库_使用Keil uVision5创建stm32 hal库项目过程

    1.首先建立项目,选择保存路径,选择设备型号,我这里使用的是stm32L151C8T6A 2.使用manage project item建立Targets和group. group包括:hal_dri ...

  4. Keil uVision5 创建工程(STM32F051C8T6)

    1.下载库文件en.stm32f0_stdperiph_lib_v1.6.0 (在https://www.st.com/en/embedded-software/stm32-standard-peri ...

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

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

  6. 使用keil软件创建一个STM32工程

    使用keil软件创建一个STM32工程 ----------------芯片:STM32F429IGT6 创建一个STM32F429IGT6的工程,其他型号的单片机也大同小异.因为最近开始学习STM3 ...

  7. 嵌入式:Keil uvision5环境下创建一个工程模板(步骤超详细)

    嵌入式:Keil uvision5环境下创建一个工程模板(步骤超详细) 1.创建一个空的文件夹,命名为"test"(可以为任何名字) 2.打开test文件夹,在该目录下依次创建两个 ...

  8. 使用Keil MDK以及标准外设库创建STM32工程

    应部分网友要求,最新加入固件库以及开发环境使用入门视频教程,同时提供例程模板,个人录制,欢迎指正.下载地址:http://dl.dbank.com/c0w0ehqynd 2013.3补充在线视频教程 ...

  9. (2)stm32开发之使用Keil MDK以及标准外设库创建STM32工程

    通过上一节对标准外设库的介绍,想必各位读者对标准外设库已经有了基本的认识,然而由于标准外设库中文件众多,很多初学者在开始很长一段时间内甚至都无法完全自己建立一个工程,很多人只是依赖标准外设库或给定的工 ...

  10. keil stm32标准库放在哪里_使用Keil MDK以及标准外设库创建STM32工程

    应部分网友要求,最新加入固件库以及开发环境使用入门视频教程,同时提供例程模板,个人录制,欢迎指正.下载地址:http://dl.dbank.com/c0w0ehqynd 2013.3补充在线视频教程 ...

最新文章

  1. RISC-V有何特别之处?
  2. HashMap.values().addAll()异常
  3. 【译】Go语言声明语法
  4. php动态网站开发报告,PHP动态网站开发pdf
  5. Spring Cloud 服务安全连接
  6. labview求n阶乘的和_递归算法(从阶乘、斐波那契到汉诺塔的递归图解)
  7. [html] 你有使用过output标签吗?说说它的用途有哪些?
  8. MapReduce分析NCDC 年气象数据最低温度与最高温度
  9. 在文件保存中 os.getcwd() os.listdir() os.makedirs() os.mkdir() xx.join() ... 等函数 的使用介绍...
  10. 咸宁php培训,PHP培训
  11. 四、python实现粒子群算法
  12. 上网本之必备网络工具推荐
  13. [html] 你有使用过blockquote标签吗?说说它的用途有哪些?
  14. Asp.net MVC下载文件的四种方法以及下载ZIP文件的一种方法
  15. LAPACK使用中出现问题的解决方案(VS平台下的)
  16. [转载]NFC功能介绍
  17. Excel催化剂开源第31波-pdf相关功能实现及类库介绍
  18. 使用Docker搭建RAP2(技术文档管理私服)
  19. oracle 表空间文件达到32G后解决办法
  20. mybatis中设置主键返回

热门文章

  1. 三菱q plc modbus通讯协议详解_三菱Q系列PLC与昆仑通态触摸屏以太网通讯
  2. 微信小程序设置了合法请求域名,小程序一直提示不在合法域名列别中
  3. 制作表情包(python)
  4. Contest 1479 2018-ZZNU-ACM集训队 夏季队内积分赛 (3)K题(易水寒)
  5. 《网络攻防第二周作业》
  6. 一份超全面的机器学习公共数据集
  7. 海信智能电视如何看电视直播
  8. 霍纳法则c语言算法代码,霍纳法则(Horner Rule)介绍及C语言实现
  9. 解决Everything无法搜索移动硬盘文件问题(utool搜索不到也是因为Everything的问题)
  10. Android 虚拟机访问本地服务器