STM32 IAP固件升级(三) 使用DMA收发串口的不定长数据

STM32 IAP固件升级实验系列文章

一、前言

前面介绍了IAP需要的一些基础知识,区域怎么划分,还有启动跳转过程等。当然如果需要实现IAP,通讯接口的驱动是不可或缺的。例如可以使用串口(USART)、以太网(ETH)、USB等通讯接口来进行数据收发。本实验就不使用复杂的通讯接口了,使用比较常用又比较简单的串口。当然将串口用好也不是那么简单的,使用串口中断接收数据效率一般比较低。所以为了提高效率,这里使用DMA(直接存储器存取)+USART(串口)接收数据。

STM32 IAP固件升级(二) Stm32 bootloader、application、firmware 程序的分析和编写

STM32 IAP固件升级实验系列文章

一、STM32F1XX的启动过程

在《Cortex-M3权威指南》有讲述:芯片复位后首先会从向量表里面取出两个值(下图来自Cortex-M3权威指南);

STM32 IAP固件升级(四) 通信协议的设计

STM32 IAP固件升级实验系列文章

一、前言

为了能使上位机和下位机能进行可靠的通信,所以需要设计一个相对可靠的协议。当然设计的协议也不会太复杂,但是该有的功能还是得有。数据头部,控制指令,数据长度,数据,校验码。这种类型通讯协议用于串口相对还是比较简单便捷的,当然也可以设计的很复杂例如:加入版本控制,物理设备号等等。在本文中就不涉及太复杂的东西了,就设计一个相对完整又相对简单的协议。话不多说,接下来进入正题吧。

STM32在线升级 (IAP)

不需要拆机就能够对产品进行升级,通过Bootloader就可以完成这项工作。

先了解一下IAP

ISP和IAP的区别:

ISP(In-System Programming)在系统可编程,指电路板上的空白器件可以编程写入最终用户代码, 而不需要从电路板上取下器件,已经编程的器件也可以用ISP方式擦除或再编程。

GKD Mini 模拟器玩DOS游戏

GKDmini使用了“在复古掌机产业中颇为成熟可靠省电”的MIPS架构处理器,君正X1830,CPU部分为单个Xburst1核心,主频1.5GHz,64KB L1缓存,128KB L2缓存,搭配128MB RAM,没有GPU,但内嵌了ISP和VPU单元,不过Opendingux生态中大部分应用都并未针对VPU做过优化,聊胜于无。理论上,X1830相对于GCW一堆抄板机使用的JZ4770有更好的外围配置,因此超频潜力更大主频更高,在单核为主的低位模拟器生态里,X1830反而有更好的性能表现,当然有一件事情也必须认清,这就是GKD350H上的同款SoC,再强的MIPS也只是MIPS,性能上PS1机种就是它的临界点了。

嵌入式MCU的发展历史

1971年Intel出品了第一片CPU 4004(4位),同年也出现了一些其它4位CPU,

4004是定制芯片,用于日本Busicom的计算器141-PF,说是计算器其实个头还蛮大。

Armbian-N1安装omv

起因

斐讯 N1 刷了 Armbian 之后想当 NAS 用,装 OpenMediaVault(OMV)做存储管理。本来是想用 armbian-config 来自动安装 OpenMediaVault 的,但是安装的时候总是自动退出,无奈,只能手动安装了。手动装的过程中又踩了三个坑:NFS 依赖把 dpkg 卡在半安装、OMV 引擎服务被注销导致 Web 登不进、密码失灵——都在文末“遇到的问题”里拆解。