嵌入式软件
blog_xu
让编程改变自己
展开
-
51单片机过渡到STM32的区别
前言:单片机入门之51,开发之STM3251单片机 51单片机是对所有兼容intel8031指令系统的8bit单片机统称,这一系列单片机始祖是Intel的8031单片机,代表型号有ATMEL公司的AT89系类(AT89C51) 软件上按位操作,从内部的硬件到软件有一套完整的按位操作系统,称作位处理器,处理对象不是字或字节而是位。不但能对片内某些特殊寄存器的某位进行处理,如传送、置位、清零、测试等,还能进行位的逻辑运算 支持乘法和除法指令 缺点: AD、EEPROM等功能需要扩展原创 2022-04-15 17:04:57 · 752 阅读 · 0 评论 -
STM32之HardFault的诊断
前言:出现这种错误都是由于非法操作导致,找到异常代码并解决掉,即可修改这类问题问题追踪步骤进入JTAG仿真状态,并触发异常,串口打印如下信息,程序停止在rt_hw_hard_fault_exception中 找出关键值是pc:0x0800833a,在MDK的command窗口输入pc=0x0800833a回车,就会指向异常函数入口地址 出现HardFault的原因有如下几种 指针访问非法地址 指针非对齐访问(默认4字节对齐,你访问*(0x08003001)就会报错) 除零异常 如原创 2022-04-13 17:26:15 · 1824 阅读 · 0 评论 -
STM32之HAL库的Bootloader跳转到APP
前言:需要用到OTA固件升级,必须借助Bootloader搬运新固件到旧固件的Flash区,从而完成程序升级制作Bootloader程序 使用cubeMX工具,新建Bootloader工程,其中需要打开时钟,打开UART1进行调试信息输出 1.1、打开RCC keil配置 编写代码 制作APP程序...原创 2022-03-31 15:59:42 · 5204 阅读 · 2 评论 -
STM32硬件CRC32问题记录
前言:STM32硬件本身没有问题,只是其中的校验值计算方式跟平常的不太一样硬件平台 我使用的是STM32F103ZET6单片机,用cubeMX新建的工程(使能crc即可加载\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_crc.c文件) CRC特性介绍(文档内容来自STM32中文参考手册) CRC32详细介绍请查看文档 软件平台 方法一:使用cubeMX初始化硬件CRC 方法二:手动添加文件并初始化硬件CRC 打开#d...原创 2022-03-25 16:21:52 · 2230 阅读 · 0 评论 -
堆在ROM还是RAM?
写在前面:2018年前的最后一天班,临时总结一下程序在整个嵌入式芯片的运行过程与所涉及到的堆栈问题从头说起普通的嵌入式芯片分为处理器cortex-m4、闪存Flash、内存RAM。其中我们编译成机器码的bin文件是直接烧写进Flash,(后续想要做OTA空中升级的朋友们,只需要修改Flash里面的二进制文件就可以对之前的固件进行升级)。程序开始启动当系统上电后根据BOOT的...原创 2019-01-31 15:12:09 · 8840 阅读 · 5 评论