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

浙江建筑协会网站常用的软件开发的工具

浙江建筑协会网站,常用的软件开发的工具,沪深300指数基金排名,网站制作公司怎样帮客户做优化简介 CmBacktrace #xff08;Cortex Microcontroller Backtrace#xff09;是一款针对 ARM Cortex-M 系列 MCU 的错误代码自动追踪、定位#xff0c;错误原因自动分析的开源库。主要特性如下#xff1a; 支持的错误包括#xff1a; 断言#xff08;assert#xff09;…简介 CmBacktrace Cortex Microcontroller Backtrace是一款针对 ARM Cortex-M 系列 MCU 的错误代码自动追踪、定位错误原因自动分析的开源库。主要特性如下 支持的错误包括 断言assert故障Hard Fault, Memory Management Fault, Bus Fault, Usage Fault, Debug Fault 故障原因 自动诊断 可在故障发生时自动分析出故障的原因定位发生故障的代码位置而无需再手动分析繁杂的故障寄存器输出错误现场的 函数调用栈需配合 addr2line 工具进行精确定位还原发生错误时的现场信息定位问题代码位置、逻辑更加快捷、精准。也可以在正常状态下使用该库获取当前的函数调用栈支持 裸机 及以下操作系统平台 RT-ThreadUCOSFreeRTOS需修改源码 根据错误现场状态输出对应的 线程栈 或 C 主栈故障诊断信息支持多国语言目前简体中文、英文适配 Cortex-M0/M3/M4/M7 MCU支持 IAR、KEIL、GCC 编译器 环境 IDEKeil 5.30Windows 11MCUSTM32H750Cortex M7Cortex M3/M4 MCU都可以RTOSRT-Thread源码https://github.com/armink/CmBacktrace 移植源码 下载源码 git clone https://github.com/armink/CmBacktrace.git将cm_backtrace文件夹复制至工程并将根目录所有源文件添加至工程将cm_backtrace/fault_handler/keil下的cmb_fault.s 汇编文件添加至工程添加后需要把项目原有的 HardFault_Handler 注释掉将cm_backtrace文件夹添加至头文件路径 配置说明 配置文件名 cmb_cfg.h 针对不同的平台和场景用户需要自自行手动配置常用配置如下 配置名称功能备注cmb_println(…)错误及诊断信息输出必须配置CMB_USING_BARE_METAL_PLATFORM是否使用在裸机平台使用则定义该宏CMB_USING_OS_PLATFORM是否使用在操作系统平台操作系统与裸机必须二选一CMB_OS_PLATFORM_TYPE操作系统平台RTT/UCOSII/UCOSIII/FREERTOSCMB_CPU_PLATFORM_TYPECPU平台M0/M3/M4/M7CMB_USING_DUMP_STACK_INFO是否使用 Dump 堆栈的功能使用则定义该宏CMB_PRINT_LANGUAGE输出信息时的语言CHINESE/ENGLISH 根据环境我这里的cmb_cfg.h内容如下 #ifndef _CMB_CFG_H_ #define _CMB_CFG_H_#include stdio.h/* print line, must config by user */ #define cmb_println(...) do{printf(__VA_ARGS__);printf(\r\n);}while (0)/* e.g., printf(__VA_ARGS__);printf(\r\n) or SEGGER_RTT_printf(0, __VA_ARGS__);SEGGER_RTT_WriteString(0, \r\n) */ /* enable bare metal(no OS) platform */ /* #define CMB_USING_BARE_METAL_PLATFORM */ /* enable OS platform */ #define CMB_USING_OS_PLATFORM /* OS platform type, must config when CMB_USING_OS_PLATFORM is enable */ #define CMB_OS_PLATFORM_TYPE CMB_OS_PLATFORM_RTT /* or CMB_OS_PLATFORM_UCOSII or CMB_OS_PLATFORM_UCOSIII or CMB_OS_PLATFORM_FREERTOS or CMB_OS_PLATFORM_RTX5 */ /* cpu platform type, must config by user */ #define CMB_CPU_PLATFORM_TYPE CMB_CPU_ARM_CORTEX_M7 /* CMB_CPU_ARM_CORTEX_M0 or CMB_CPU_ARM_CORTEX_M3 or CMB_CPU_ARM_CORTEX_M4 or CMB_CPU_ARM_CORTEX_M7 or CMB_CPU_ARM_CORTEX_M33 */ /* enable dump stack information */ #define CMB_USING_DUMP_STACK_INFO /* language of print information */ #define CMB_PRINT_LANGUAGE CMB_PRINT_LANGUAGE_CHINESE_UTF8 /*CMB_PRINT_LANGUAGE_ENGLISH(default) or CMB_PRINT_LANGUAGE_CHINESE or CMB_PRINT_LANGUAGE_CHINESE_UTF8 */ #endif /* _CMB_CFG_H_ */实例测试 初始化 在工程最开始调用初始化函数三个参数依次为固件名称硬件版本软件版本 固件名称最好和Options魔术棒 Output Name of Executable一致方便后续使用addr2line 工具 cm_backtrace_init(STM32H750VB-RTT, V1.0.0, V0.0.1);测试源码 调用关系main() test2() test1() fault_test() void fault_test() {volatile int *SCB1 (volatile int *) 0xFEEEEEEE;*SCB1 | 0x10;printf(SCB1: %d\r\n, *SCB1); }void test1() {printf(test 1 start\r\n);fault_test();printf(test 1 end\r\n); }void test2() {printf(test 2 start\r\n);test1();printf(test 2 end\r\n); }int main(void) {//......test2();//...... }日志 由日志可知设备挂掉的原因为非对齐访问 固件名称STM32H750VB-RTT硬件版本号V1.0.0软件版本号V0.0.1 在线程(main)中发生错误异常线程堆栈信息 addr: 20001040 data: deadbeefaddr: 20001044 data: 2000104caddr: 20001048 data: 20001054addr: 2000104c data: 0800a9e3addr: 20001050 data: 200010ccaddr: 20001054 data: 08008e9faddr: 20001058 data: 23232323addr: 2000105c data: 23232323addr: 20001060 data: 23232323addr: 20001064 data: 23232323addr: 20001068 data: 23232323addr: 2000106c data: 23232323addr: 20001070 data: 23232323addr: 20001074 data: 23232323addr: 20001078 data: 23232323addr: 2000107c data: 23232323addr: 20001080 data: 23232323addr: 20001084 data: 23232323addr: 20001088 data: 23232323addr: 2000108c data: 00000000addr: 20001090 data: deadbeefaddr: 20001094 data: deadbeefaddr: 20001098 data: deadbeefaddr: 2000109c data: deadbeefaddr: 200010a0 data: deadbeefaddr: 200010a4 data: deadbeefaddr: 200010a8 data: deadbeefaddr: 200010ac data: deadbeefaddr: 200010b0 data: 200010c4addr: 200010b4 data: 08009247addr: 200010b8 data: deadbeefaddr: 200010bc data: deadbeefaddr: 200010c0 data: 200010ccaddr: 200010c4 data: 08008f81addr: 200010c8 data: deadbeefaddr: 200010cc data: 08008155寄存器信息 R0 : feeeeeee R1 : f0000000 R2 : 00000000 R3 : 08008a0aR12: 0000c000 LR : 0800a9a7 PC : 08008a76 PSR: 61000000发生用法错误原因企图执行非对齐访问 查看更多函数调用栈信息请运行addr2line -e STM32H750VB-RTT.axf -afpiC 08008a76 0800a9a6 0800a9e2 08008e9e 08009246 08008f80调用addr2line 在生成编译结果的目录右键打开终端运行日志提示的addr2line的命令 没有addr2line的可以在tools文件夹获取因为我装有MinGW Minimalist GNU for Windows所以直接运行 结果可以很清晰的看到函数调用过程和出错的地方 addr2line -e STM32H750VB-RTT.axf -afpiC 08008a82 0800a9b2 0800a9ee 08008eaa 08009252 08008f8c0x08008a76: fault_test at D:\RT-ThreadStudio\workspace\STM32H750VB-RTT\MDK-ARM/../Core/Src/main.c:21 0x0800a9a6: test1 at D:\RT-ThreadStudio\workspace\STM32H750VB-RTT\MDK-ARM/../Core/Src/main.c:30 0x0800a9e2: test2 at D:\RT-ThreadStudio\workspace\STM32H750VB-RTT\MDK-ARM/../Core/Src/main.c:37 0x08008e9e: main at D:\RT-ThreadStudio\workspace\STM32H750VB-RTT\MDK-ARM/../Core/Src/main.c:83 0x08009246: rt_components_init at D:\RT-ThreadStudio\workspace\STM32H750VB-RTT\MDK-ARM/..\RT-Thread\/src\components.c:127 0x08008f80: main_thread_entry at D:\RT-ThreadStudio\workspace\STM32H750VB-RTT\MDK-ARM/..\RT-Thread\/src\components.c:195
http://www.hkea.cn/news/14347508/

相关文章:

  • 杭州开发网站的公司网站建设seo优化
  • 网站icp备案证明用什么程序做网站
  • 网站定制设计师做新零售这些注册网站和找货源6
  • 站长之家网址ip查询常州网站推广排名
  • 东营网站制作公司中英文网站切换怎么做
  • 企业内部系统网站制作photoshop手机版在线使用
  • 做家教网站赚钱么北京网站高端建设
  • 做网站的工资辽阳网站网站建设
  • 公司网站建设教程综合性门户网站是什么意思
  • 天津智能网站建设哪里有现在哪个公司家庭网络好用
  • 宁波网站推广优化公司怎么样海淀商城网站建设
  • 网站片头怎么做济宁住房和城乡建设厅网站
  • asp企业网站源码下载mugeda做网站
  • dedecms教育h5网站模板优质龙岗网站建设
  • 网站后台无法上传本地图片专门做家具的网站
  • 安徽建筑大学城市建设学院网站电商网络推广怎么做
  • 整站seo哪家服务好龙华网站建设的软件
  • seo批量建站大连网站建设方案
  • 唐山做网站汉狮网络网站弹出式链接后台怎么做
  • 硅藻泥网站怎么做上海公司注册名字查询网
  • 胶州网站建设dch100小程序订单管理系统
  • 浙江网站做网站都有备案吗
  • 网站内链结构是什么意思产品怎么做推广和宣传
  • 手机如何制作网站源码如何做全网营销推广
  • 做catalog的免费网站中国铁路建设行业协会网站
  • 网站建设基础流程为什么检测行业不能用网站做
  • 个人网站建设一般流程桂林网站推广
  • 哪里做网站优化软件开发公司账务处理
  • 网站建站的基本步骤如何做html网站
  • 企业门户网站模式平面广告设计专业