当前位置: 首页 > news >正文

Keil进阶操作

        这两天工作的时候发现了些新功能,周末又刚好下雨,就做个记录吧。

脚本调试

        在.ini文件中编写自定义函数。之前调试的时候,发现的新功能,CSDN还是有些作用的。通过该功能,可以把寄存器里面的数据打印出来,再拷贝到excel里面,与不同版本程序对比,查看关键寄存器数据是否正确。我下面的代码可以一次读出229个寄存器,脚本调试的启蒙老师就是下面这个链接。

KeiL 调试时保存watchwindow的参数变量到文件_keil持续记录变量值到文件-CSDN博客

然后又去官网查找相关资料,具体链接如下。

µVision User's Guide: Creating Functions

​​​​​​​FUNC void displayvalues(void) {int idx;for (idx = 0; idx < 229; idx++) {printf ("testarray[%d] = %8x\n", idx, *(uint32_t *)(0x4001C000+4*idx));}
}

        displayValues脚本运行结果如command界面所示,displayValues()函数会打印出0x4001C000地址开始的229个HT7036芯片校表寄存器数据,但我使用的软件模拟(没有接开发板),所以寄存器里面的数据都是0。

        此外,command界面还可以输入一些指令,sleep,printf,exit(输入完直接退出调试模式)。我境界不够,目前只用到printf。

µVision User's Guide: printf Library Routine

软件仿真

        软件仿真调试,这是同事教我的,无需硬件,用于查看与硬件无关的软件变量。前文已经展示过了,软件仿真模式下,芯片寄存器内部数据毫无意义。

生成文件

        fromelf是一款可以将Image,ELF文件转换成二进制文件的工具,fromelf的具体描述如下。

ARM Compiler fromelf User Guide Version 5.06

生成合并文件

fromelf.exe --bin --bincombined --bincombined_padding=1,0xff --output HT7x2x.bin  !L

        使用bincombined关键字,将芯片所有加载区域输出到一个文件中。(Produces plain binary output. It generates one output file for an image containing multiple load regions.)

按程序分区生成文件

         使用bin关键字,按程序加载区域生成文件bin文件,且生成文件存放在名为HT7x2x.bin的文件夹中,生成文件不带.bin后缀,需要手动添加。如果输出文件夹下包含HT7x2x.bin文件(bin文件,非文件夹),会因为这个同名文件的存在,导致生成失败。是我浅薄了,没想到同名文件和文件夹不能同时存在,之前以为同类型文件不能同名,没想到命名规则这么严格。

fromelf.exe --bin --output HT7x2x.bin  !L

       fromelf -bin默认生成文件与程序区域名字相同,程序区域划分如下。

http://www.xdnf.cn/news/931321.html

相关文章:

  • 前沿探索:可视化助力设备运维实现跨越式发展
  • JAVA反序列化应用 : URLDNS案例
  • 前端获取接口数据流程
  • 二分答案-P1873 砍树
  • MySQL中的部分问题(2)
  • Spring整合Mybatis
  • WEB3全栈开发——面试专业技能点P3JavaScript / TypeScript
  • 数据库、数据仓库、数据中台、数据湖相关概念
  • MATLAB R2025a|Win中文|仿真建模|安装教程
  • uni-app学习笔记二十三--交互反馈showToast用法
  • Docker 安装 Ubuntu
  • day27-shell编程(自动化)
  • 附加模块--Qt Shader Tools功能及架构解析
  • typeof运算符 +unll和undefined的区别
  • AI书签管理工具开发全记录(十七):Sun-Panel书签同步实现
  • 【ArcGIS Pro微课1000例】0072:如何自动保存编辑内容及保存工程?
  • 68常用控件_QGroupBox的使用
  • C语言中的文件操作
  • Android写一个捕获全局异常的工具类
  • 【hive】函数集锦:窗口函数、列转行、日期函数
  • stm32-c8t6实现语音识别(LD3320)
  • 【Mac 从 0 到 1 保姆级配置教程 16】- Docker 快速安装配置、常用命令以及实际项目演示
  • 【SpringBoot+SpringCloud】Linux配置nacos踩坑大全
  • AI时代:学习永不嫌晚,语言多元共存
  • 思澈sdk-新建lcd
  • LeetCode--25.k个一组翻转链表
  • 从0开始学习R语言--Day20-ARIMA与格兰杰因果检验
  • 【第八篇】 SpringBoot高级配置(配置篇)
  • CZGL.SystemInfo:跨平台的系统信息获取库
  • AUTOSAR实战教程--DoIP_01_配置项解释