控制板是STM32f103c8t6protues打开也是显示缺失脚本文件是keil5的原因吗

img

用的keil5 MDK打开程序为什么是这样的?
控制板是STM32f103c8t6
protues打开也是显示缺失脚本文件
是keil5的原因吗?之前打开还是正常的

img

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以看下这个问题的回答https://ask.csdn.net/questions/7648908
  • 除此之外, 这篇博客: 基于MDK下的STM32F103纯汇编语言练习中的 二、在Keil下完成一个汇编程序的编写 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:
    • 1、新建工程,点击上方的的Project->New μVision Project… 选择工程存放位置及工程名。
    • 选择芯片

    在这里插入图片描述

    • 添加启动文件
      在这里插入图片描述

    • 在左侧Source Group 1文件上右键,选择Add new item…,选择Asm File,然后点击Add
      在这里插入图片描述

    • 添加代码

     AREA MYDATA, DATA
    	
     AREA MYCODE, CODE
    	ENTRY
    	EXPORT __main
    
    __main
    	MOV R0, #10
    	MOV R1, #11
    	MOV R2, #12
    	MOV R3, #13
    	;LDR R0, =func01
    
    	BL	func01
    	;LDR R1, =func02
    	BL	func02
    	
    	BL 	func03
    	LDR LR, =func01
    	LDR PC, =func03
    	B .
    		
    func01
    	MOV R5, #05
    	BX LR
    	
    func02
    	MOV R6, #06
    	BX LR
    	
    func03
    	MOV R7, #07
    	MOV R8, #08	
    	BX LR
    	END
    
    • 为了能在MDK中进行仿真,需要进行一些设置,点击魔法棒,选择Debug,Use Simulator,将下方的Dialog.DLL修改成DARMSTM.DLL,Parameter修改成-pSTM32F103C8(根据你选的芯片来写),如果这里不进行修改,仿真调试的时候就会一直循环在在这里插入图片描述
      这是由于我们进行的仿真,没有外部晶振进行起振。
      在这里插入图片描述
    • 开始仿真,点击上方的Start/Stop Debug(或者直接ctrl+F5),然后点击②处的RUN,再点击Stop

    在这里插入图片描述

    • 运行结果
      在这里插入图片描述
    • 最终生成 hex文件的各段的大小
      在这里插入图片描述

    Code:指程序中代码的字节数
    RO-data:指程序中定义的常量字节数
    RW-data :程序中已初始化的变量字节数
    ZI-Data:程序中未初始化的变量字节数
    可计算出flash和RAM的占用情况:
    flash = Code + RO-data + RW-data
    ram = RW-data + ZI-dat

    • 打开hex文件
      在这里插入图片描述

    如图,其中第一行020000040800F2中,可以看做是0x02 0x00 0x00 0x04 0x08 0x00 0xf2,其前四个字节和最后一个字节有特殊含义。中间为数据

    第一个0×02表示该行数据中有两个数据

    第二个,第三个0x00 0x00表示本行数据的起始地址位

    第四个字节有0x00 0x01 0x02 0x03 0x04 0x05,分别有以下含义

    '00’Data Rrecord:用来记录数据,HEX文件的大部分记录都是数据记录

    '01’文件结束记录:用来标识文件结束,放在文件的最后,标识HEX文件的结尾**

    '02’扩展段地址记录:用来标识扩展段地址的记录

    '03’开始段地址记录:开始段地址记录

    '04’扩展线性地址记录:用来标识扩展线性地址的记录

    '05’开始线性地址记录:开始线性地址记录

    最后一个字节0xf2为校验和。
    校验和的算法为:
    计算0xf2前所有16进制码的累加和(不计进位),检验和 = 0x100 - 累加和

  • 以下回答来自chatgpt: 根据提供的参考资料,我推测可能有以下几个原因导致你使用Keil5 MDK打开STM32f103c8t6控制板程序时出现缺失脚本文件的情况: 1.Keil5没有安装相应的芯片包,导致无法识别你的STMicroelectronics STM32f103c8t6芯片。 解决方案:下载相应的芯片包并安装。百度云下载链接:http://pan.baidu.com/s/1bpc7Xmf 2.项目工程使用的是MDK4,而你使用的是MDK5打开,导致无法识别。 解决方案:将项目工程导入到MDK4中打开或在MDK5中创建一个新项目,将原有代码拷贝进去。 3.头文件路径设置不正确,导致Keil5无法找到相应的脚本文件。 解决方案:在Keil5的Include Paths中添加正确的头文件路径,或者在头文件中使用"./"表示当前目录。 4.其他原因导致的缺失脚本文件问题。 解决方案:确保你使用的是正确的软件版本和正确的文件,可以尝试重新下载相关文件并重新导入。 以上是我根据提供的参考资料所得到的解决思路,具体的实现细节还需要根据具体情况进行进一步的调试和解决。如果以上解决方案无法解决你的问题,请说明无法解决该问题。

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

keil编译报错吗?