我以前用这种OLED屏开发过几款产品,当时设计产品需求比较简单,界面除了简易的图形之外,就是文字信息,都是自己设计的UI界面。
环形队列是最为常见的一种的数据结构,它是一个首尾相连的FIFO的数据结构,采用数组的线性空间,数据组织简单,能很快知道队列是否满为空,能以很快速度的来存取数据。
Keil MDK的界面虽然不那么友好(IAR其实也好不到哪里去),但Keil的调试功能算是好过很多集成开发环境,特别是针对Cortex-M内核的处理器。
在开始软件设计之前,我们来简略地分析一下这样一个小软件其要包含的主要内容有哪些。我们认为软件需要如下几个方面的内容:
到目前为止,很多MCU跑AI算法已经很“轻松”了,今天就手把手教大家移植CMSIS-NN V6.0.0到瑞萨RA8单片机(VisionBoard开发板)。
这些年随着AIOT(人工智能+物联网)的快速发展,以及MCU性能的提升(比如瑞萨推出的基于Cortex-M85内核的RA8系列MCU),在MCU上实现机器学习也变得越来越流行。
一种无OS的MCU实用软件框架,包括任务轮询管理,命令管理器、低功耗管理、环形缓冲区等实用模块。系统中广泛利用自定义段技术减少各个模块间的耦合关系,大大提供程序的可维护性。
世上没有完美的软件,因为设计缺陷、业务需求更新,软件始终都需要不断升级完善。新软件如何替换正在运行的旧软件就是本文关注的重点,尤其是针对电子产品,设备空中升级OTA,受限于硬件资源,需要选择不同的方案进行软件升级。
用grep拿到的日志很少,我们需要查看附近的日志。我是这样做的,首先: cat -n test.log | grep “关键词” 得到关键日志的行号
通过后台的一些数据分析,我可以知道本公众号读者的一些年龄分布、地域分布、对哪些文章比较感兴趣等信息。
过去,码农相对较少,你写屎山代码,可能还勉强混得走。但现在,大环境变了,你代码的质量一看就知道,你也不要想瞒住谁。
今天结合瑞萨单片机(RA4M3)、e2 studio开发环境给大家讲述的是单片机通过USB(U盘)升级固件的方法。
有深入理解RTOS原理,或阅读过RTOS源码的同学应该知道:RTOS实现任务间通信通常是由一系列指针进行操作实现的。
IntroductionPricinple & MachenismHA01的内存地址空间BOOT ROM简介BOOT ROM中的Bootloader执行过程BVT的数据结构Practice源码中关于BVT的设计在集成开发环境中调试ConclusionReferenceIntroductionHA系列微控制器基于Arm Cortex-M7处理器内核,集成了Security Boot的功能。Security Boot的关键代码集成在BOOT ROM中的bo...
IntroductionPricinple & MachenisimApplication基本的boot swap用例不更新bootloader的情况更新bootloader的情况ConclusionIntroduction客户在开发量产型的ECU软件时,大多会考虑实现OTA(在线更新)的功能,方便在将ECU设备装车之后,可以利用通信过程更新固件。OTA的实现技术中,为了提升更新过程的安全性,避免在更...
一些初学单片机的同学,刚刚入手做单片机开发,还没有涉及到使用RTOS,且刚入手直接上RTOS可能会有些难度,有的使用的相对较老单片机资源还有限,也不适合跑RTOS。
在一个STM32程序代码中,从内存高地址到内存低地址,依次分布着栈区、堆区、全局区(静态区)、常量区、代码区,其中全局区中高地址分布着.bss段,低地址分布着.data段。
点亮发光的LED灯是简单有趣的实验,点亮多个ws2812小灯串联起来的灯带,可对多个彩色小灯进行编程,从而实现各种有趣的显示效果。多个ws2812使用串联的方式级联在一起,微控制器以发出长短脉冲的序列控制彩色小灯显示的颜色和亮度。
随着嵌入式系统的发展,产品对于代码升级功能的需求越来越大。通过代码升级,可以实现诸如支持新功能,修复故障等目标。
前面给大家讲述了【MCUboot的几种模式】,今天讲述其中的Overwrite 模式升级流程,以及在FSP中如何配置、如Flash怎样划分、安全校验的方式等应用。