- 博客(45)
- 收藏
- 关注
原创 IO扩展芯片应用及方案选型 (74HC595,74HC165,8255,CH351等)
在我们进行单片机开发的时候, 经常会发现I/O 口不够用。一方面是因为我们产品中往往都包括很多的功能, 又有显示, 又有存储等等;另一方面是我们所使用的单片机芯片确实I/ O 资源不多。有人说, 你可以选I/O 口比较多的芯片, 比如说把 STM32F103C8T6 换成同型号大封装的, 或者直接换 F407。没错, 如果在成本允许的情况下, 确实是I/O 不够一换了之。但成本往往是需要考虑的首要因素。
2024-03-20 22:33:55 685
原创 一文理解单片机BootLoader的前世今生(万字长文,配33张高清图)
BootLoader(引导加载程序)是一种软件,它负责在计算机系统启动时加载操作系统或其他应用程序。BootLoader通常是存储在计算机系统的非易失性存储器中(如固态硬盘、闪存等),并在系统上电时自动执行。BootLoader通常由计算机制造商或操作系统开发商提供,但也有一些独立的BootLoader可用于多个操作系统的引导管理。
2024-03-19 22:50:01 1074
原创 ARM Cortex R52内核 01 概述
Cortex-R52处理器是一种中等性能、有序、超标量处理器,主要用于汽车和工业应用。它还适用于各种其他嵌入式应用,如通信和存储设备。Cortex-R52处理器具有一到四个核心,每个核心实现一个单一的Armv8-R AArch32兼容处理单元processing element (PE)。在Cortex-R52上下文中,PE和核心在概念上是相同的。多个受保护的内存系统架构Protected Memory System Architecture(PMSA)上下文可以使用虚拟化技术在同一核心上执行。
2024-03-17 22:36:54 935
原创 STM32信息安全 1.2 课程架构介绍:芯片生命周期管理与安全调试
到TZ-Closed状态时,相当于我把安全侧的所有的调试都关闭了,TZ-Closed状态只有开启了Trust-Zone的时候才会有,H556x或者H57x系列芯片,默认出厂时就是没有开启的状态,这个时候时没有TZ-Closed的状态,TZ-Closed状态可以变成Closd状态或者时Lock状态,这两个状态时二选一的,在这种情况下,调试端口都是完全关闭的,此时不允许任何连接的,这是这些状态之间的一个主要流向。关于Debug authentication,在Wiki页面上的相关的资源。
2024-03-15 07:58:56 1164
原创 一文读懂STM32中断NVIC(超详细+中断CubeMX配置指南)
STM32F407有23个外部中断,每个输入线都可以单独配置触发事件,其中EXTI0至EXTI4的每个中断有独立的ISR,EXTI线[9:5]中断共用一个中断号,也就是共用ISR,EXTI线[15:10]中断也共用ISR,见下表所示。如下图所示,是外部有信号从右边输入线输入,通过边缘检测电路,判断其中断标志位,进而一步步输送到NVIC中断控制器中。但是对于检测按键输入的外部中断,这是有问题的,因为清除中断挂起标志位后,按键的抖动就会触发下一次中断,并将中断挂起标志位置位,就会在执行一次回调函数。
2024-03-11 22:46:09 1303
原创 STM32信息安全 1.1 课程架构介绍:信息安全特性概览
开发者在打造嵌入式系统时,安全和性能是产品开发设计的考量重点。为实现这一目标,ST推出了STM32H5系列,该系列作为微控制器新标杆面向工业应用市场,将为用户带来更强劲性能和安全性,提供更多设计自由,加快产品上市。STM32H5系列可提供从安全硬件到完整解决方案的丰富资源,用户可根据需要选择。STM32H5带来更加出色的安全机制,例如配备永久信任根(iRoT )和可更新可信根(uRoT)的双级可信根。
2024-03-11 22:28:19 836
原创 STM32 FSMC (Flexible static memory controller) 灵活静态内存控制器介绍
FSMC模块能够与同步和异步存储器以及16位PC内存卡进行接口。其主要目的是:将AHB事务转换为适当的外部设备协议,满足外部设备的访问时序要求。所有外部存储器与控制器共享地址、数据和控制信号。每个外部设备通过唯一的芯片选择来访问。FSMC一次只对一个外部设备进行访问。
2024-02-10 16:48:15 1288
原创 NXP恩智浦电源管理芯片 PIMC VR5510 (配套S32G)芯片手册(I2C通信)-翻译版
VR5510是一款汽车多输出电源管理IC,专注于网关、车载网络、域控制器、远程信息处理和车辆到X(V2X)通信。该设备包括多个高效开关模式和线性稳压器。它提供了输入和输出的外部频率同步,以优化系统的电磁兼容性(EMC)性能。VR5510包括增强的安全功能,具有故障安全输出。该设备覆盖了汽车安全完整性等级(ASIL)B和ASIL D安全完整性等级。它符合ISO 26262标准,并符合AEC-Q100 rev H(Grade1,MSL3)。
2024-02-08 10:39:13 821
原创 【RA6M3 HMI Board线下培训笔记】 RT Thread实现物联网应用 ETH+MQTT+LVGL+RTOS 实现温湿度监测
随着物联网技术的飞速发展,越来越多的生活场景变得越来越智能,网联化、智能化越来越成为主旋律。值此之际,RT-Thread 和 瑞萨电子共同举办 **智能家居网络开发:RA6M3 HMI Board 以太网+GUI技术实践 线下培训**。这次培训融合了很多物联网相关的知识,以太网ETH,MQTT协议,LVGL图像化界面和RTOS多任务开发,RT Thread Studio软件和生态高质量、高复用和高平台性的软件工具链将这四者综合起来,让开发者可以快速的上手物联网开发
2024-01-26 08:27:43 1058 1
原创 一文读懂I2C总线 (超详细配42张高清图)
I2C(Inter-Integrated Circuit)通信总线,作为嵌入式系统设计中的一个关键组成部分,其灵活性和高效率使其在高级应用中备受青睐。本文旨在提供关于I2C通信总线的深度解析,包括其基本概念、特点、通信协议,以及在不同场景下的高级应用和最佳实践。I2C接口只有2根信号线,总线上可以连接多个设备,硬件实现简单,可扩展性强。I2C通信协议可以用普通GPIO引脚进行软件模拟。I2C接口主要用于通讯速率要求不高,以及多个器件之间通信的应用场景。
2024-01-19 20:38:15 980
原创 I2C总线和通信协议详解 (超详细配42张高清图+万字长文)
I2C(Inter-Integrated Circuit)通信总线,作为嵌入式系统设计中的一个关键组成部分,其灵活性和高效率使其在高级应用中备受青睐。本文旨在提供关于I2C通信总线的深度解析,包括其基本概念、特点、通信协议,以及在不同场景下的高级应用和最佳实践。I2C接口只有2根信号线,总线上可以连接多个设备,硬件实现简单,可扩展性强。I2C通信协议可以用普通GPIO引脚进行软件模拟。I2C接口主要用于通讯速率要求不高,以及多个器件之间通信的应用场景。
2024-01-17 07:50:02 862
原创 一文读懂CAN总线协议 (超详细配34张高清图)
CAN 是 Controller Area Network 的缩写(以下称为 CAN),是 ISO国际标准化的串行通信协议。在当前的汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,各种各样的电子控制系统被开发了出来。由于这些系统之间通信所用的数据类型及对可靠性的要求不尽相同,由多条总线构成的情况很多,线束的数量也随之增加。为适应“减少线束的数量”、“通过多个 LAN,进行大量数据的高速通信”的需要。CAN 最初出现在80年代末的汽车工业中,由德国 Bosch 公司最先提出。
2024-01-14 11:11:26 1669
原创 CAN总线通信详解 (超详细配34张高清图)
CAN 是一种多主方式的串行通讯总线,基本设计规范要求有高的位速率,高抗电磁干扰性,而且能够检测出产生的任何错误。当信号传输距离达到10Km 时,CAN 仍可提供高达50Kbit/s 的数据传输速率。由于 CAN 总线具有很高的实时性能,现在,CAN 的高性能和可靠性已被认同,并被广泛地应用于工业自动化、船舶、医疗设备、工业设备等方面。
2024-01-13 17:54:41 1312
原创 英飞凌AURIX 2G TC3xx新一代芯片架构系列介绍-概论
性能方面的下一个自然演变是AURIX 2G TC3xx,它是在40 nm嵌入式闪存技术中制造的,并为恶劣的汽车环境中的最终可靠性而设计。与AURIXTM之前一样,双前端概念确保了连续供应。一个广泛的生态系统可用,包括英飞凌自2005年以来一直在开发的AUTOSAR库。此外,还可以使用安全软件来帮助制造商满足SIL / ASIL安全标准。
2024-01-03 23:15:07 421
原创 STM32 CubeMX 中断NVIC 实战 (超详细配30张高清图,附源码)
STM32F407的嵌套向量中断控制器(Nested Vectored Interrupt Controller,NVIC)管理所有中断,它有82个可屏蔽中断,还有13个系统中断。82个可屏蔽中断和部分系统中断可配置中断优先级,总共有16个优先级。NVIC是ARM Cortex-M处理器内部的模块,负责管理处理器的中断。在STM32系列中,要使用中断,通常的步骤包括配置相关的外部硬件(如果需要)、配置NVIC以及编写中断服务程序。在初始化过程中,需要确保配置中断优先级和使能相应的中断。
2024-01-03 10:12:01 1269 1
原创 STM32 CubeMX GPIO 输入/输出按键点亮LED灯实战 (超详细配高清图,附源码)
STM32F407ZG有8个16引脚的GPIO端口,从PA到PH,还有一个12引脚的PI端口,这些GPIO端口都链接在AHB1总线上,最高时钟频率可以达到168MHz(如下图时钟树),GPIO引脚能承受5V电压。一个端口的16个GPIO引脚的功能可以单独配置,每个引脚的输入/输出数据可以单独读取或输出。一个GPIO引脚的内部结构如下图所示,其内部有双向保护二极管,有可配置的上拉或下拉电阻。每个GPIO引脚可以配置为多种工作模式。
2023-12-26 21:50:42 961
原创 ARM内核A核、R核和M核的异同点和应用场景
性能差异:Cortex-A核具有最高的性能,适合处理复杂的计算任务。Cortex-R核次之,专注于实时性能。Cortex-M核性能最低,专注于低功耗。架构特性:Cortex-A核通常具有高级特性,如乱序执行,用于通用计算。Cortex-R核和Cortex-M核注重实时性能和可预测性,通常采用顺序执行。功耗特性:Cortex-A核通常功耗较高,适用于设备拥有足够电源和散热能力的场景。Cortex-R核和Cortex-M核注重功耗效率,适用于电池供电或低功耗要求的设备。应用领域:Cortex-A核适用于高
2023-11-05 20:41:53 961
原创 嵌入式发展史简述及一些概念
21世纪的嵌入式系统已经成为现代社会和经济生活中的不可或缺的一部分。它们为各种领域带来了创新和进步,提高了效率、可持续性和生活质量。未来,嵌入式系统将继续演进,支持更多新兴技术和应用,如人工智能、自动化、无人机技术等。
2023-11-05 20:17:08 135
原创 Linux操作系统开机上电执行的第一行代码
在计算机的启动过程中,执行的第一行操作系统代码通常是位于引导扇区(Boot Sector)的启动加载程序(Boot Loader)的代码。这个启动加载程序位于硬盘上,通常存储在硬盘的第一个扇区(通常是512字节),并被BIOS(Basic Input/Output System)从硬盘加载到内存的0x7C00地址处执行。引导加载程序的任务是管理这个过程,选择正确的操作系统内核并确保它正确加载和启动。:一旦引导加载程序位于0x7C00地址处,BIOS会跳转到该地址,开始执行引导加载程序的代码。
2023-11-05 17:50:17 92
原创 系统学习AutoSAR ETAS RTA-OS嵌入式操作系统(四)中断Interrupts
中断提供了应用程序与现实世界发生事件之间的接口。例如,你可以使用一个中断来捕获按钮被按下的动作,标记时间流逝或者捕获其他刺激。当发生一个中断时,处理器通常会查看内存中预定义位置上的向量。向量通常包含相关中断处理程序的地址。你的处理器文档和目标/编译器端口指南将为你提供更多信息。包含应用程序所有向量的内存块称为向量表。
2023-10-23 10:39:59 246
原创 系统学习AutoSAR ETAS RTA-OS嵌入式操作系统(三)任务Tasks
RTA-OS提供了一个调度器,根据在配置时分配的固定优先级来切换任务。优先级对紧急程度的反映。Deadline Monotonic Assignment 截止时间单调分配将更高优先级分配给具有较短截止日期的任务。Rate Monotonic Assignment 速率单调分配将更高优先级分配给需要最频繁运行的任务。无论如何分配优先级,任务执行的顺调度策略确定。调度策略决定了任务实际运行的时间。
2023-10-14 11:28:18 320
原创 系统学习AutoSAR ETAS RTA-OS嵌入式操作系统(二)开发过程 Development Process
本章提供了如何在应用程序中使用RTA-OS的简要概述。该过程包括以下步骤:1. 配置您想要使用的操作系统功能2. 生成定制的RTA-OS内核库3. 编写使用操作系统的应用程序代码4. 将您的应用程序代码编译并链接到RTA-OS库5. 在目标上运行您的应用程序。
2023-10-07 14:47:12 359 1
原创 系统学习AutoSAR ETAS RTA-OS嵌入式操作系统(一)
RTA-OS是一种静态可配置、抢占式的实时操作系统(RTOS),用于高性能、资源受限的应用。RTA-OS是开放标准AUTOSAR R3.x,AUTOSAR R4.0(包括多核)、AUTOSAR R4.1、AUTOSAR R4.2、AUTOSAR R4.3、AUTOSAR R4.4和 AUTOSAR R4.5(R19-11) OS规范的完整实现,并且完全符合OSEK/VDX OS标准版本2.2.3。OSEK现在已经被ISO 17356标准化。
2023-09-28 19:29:14 410
原创 思维模型:5W2H模型概念,示例,使用场景及优缺点
5W2H 是一种基于问题的思考方法,用于帮助人们系统地思考和解决问题。其名称来自于该方法涉及的七个问题字首:1. **What** - 什么?需要做什么?2. **Why** - 为什么?为什么要这样做?3. **Where** - 在哪里?哪里要这样做?4. **When** - 什么时候?在什么时间这样做?5. **Who** - 谁?谁来执行?6. **How** - 怎么做?采用什么方法、步骤或手段?7. **How much** - 多少?需要多少资源、时间或金钱?
2023-09-27 13:11:21 742
原创 C 语言标准库qsort()函数详解和实现过程
`qsort()` 是 C 语言标准库 `` 中提供的一个通用的排序函数。这个函数可以对任何数据类型进行排序,只要为其提供一个正确的比较函数。
2023-09-27 08:03:31 466
原创 RT-Thread 消息队列的创建和管理详解
在RT-Thread操作系统中,消息队列(message queue)的实现和管理是通过一系列的API函数和相关的数据结构来实现的。下面我们将详细探讨消息队列的创建和管理是如何通过源代码来实现的。
2023-09-19 08:35:01 170
原创 嵌入式面试之进程、任务和中断
任务可以看作是一项或一组待完成的工作,它通常与特定的目标和输出相关。在实时操作系统(RTOS)中,任务是一个更细粒度的运行实体,它可以是一个轻量级的进程或一个线程,拥有特定的优先级和运行状态。处理器将执行一个特定的中断处理程序来处理这个事件,然后再返回到中断前的状态继续执行。进程是操作系统中的一个基本概念,代表一个独立的运行环境。进程间相互独立,一个进程不能直接访问另一个进程的资源。进程、任务和中断是在嵌入式面试中经常被问到的问题,下面给出了具体的回答指导。
2023-09-19 08:17:46 138
原创 英飞凌TLF35584电源管理芯片中文手册解读【万字长文】
英飞凌TLF35584高效多电压供电芯片,串行升压和降压预调节器,适用于3.0至40V的宽输入电压范围,具有全面性能和低总功耗,通信供电的低压降稳压器5.0V/200mA(称为LDO_Com), 微控制器供电的低压降稳压器5.0 V/600 mA (TLF35584xxVS1) 或 3.3 V/600 mA (TLF35584xxVS2)(称为LDO_µC),提供使能、同步输出信号和内部设备中的电压监测功能(添加到复位功能)以用于可选外部核心供应后稳压器
2023-09-17 22:06:04 2044 5
原创 RT-Thread软件定时器用跳表判断超时的机制
跳表是一个随机化的数据结构,由多个有序链表组成,可以提供对数时间复杂度的搜索、插入和删除操作。它是一种可以用来代替平衡树的数据结构。0x10/* ...省略其他结构体成员... *//* ...省略其他结构体成员... */在这里,rt_timer结构体中的row数组用于存放跳表节点,而结构体中的skip_list数组用于存放跳表头信息。
2023-09-14 22:00:11 300
原创 嵌入式软件之链接脚本 .ld
编译:将源代码(如C或C++)转换为汇编语言。汇编:将汇编语言转换为机器代码。链接:将多个对象文件和库合并成一个单一的可执行文件。RAM:用于存储变量和程序数据。ROM:用于存储程序代码和常量数据。Stack:用于存储局部变量和函数调用的返回地址。Heap:用于动态内存分配。ELF(Executable and Linkable Format)是一种常用的可执行文件格式。它包含了程序的代码、数据、符号表等信息,可以帮助链接器正确地组合各个代码和数据段。在MEMORY。
2023-09-14 15:42:37 162
原创 【英飞凌IFX TC3XX Mcal】AutoSAR Mcal PWM模块配置详解(3)
首先我们要理解 AUTOSAR (AUTomotive Open System ARchitecture)是一个基于汽车的开源架构,而MCAL是其硬件抽象层,用于与底层硬件进行交互。
2023-09-14 13:51:50 807 2
原创 RT-Thread定时器timer的用法和内部实现
RT-Thread Timer是一个用于执行定时操作的组件。你可以使用它来在一定的时间间隔后执行一个函数,或者在特定的时间点执行一个函数。
2023-09-14 08:19:20 831
原创 芯片锁步核Lock Step
在lock step模式下,多个处理器核心或多个处理器同时执行相同的指令序列,并在每个时钟周期后进行比较,以保证它们的执行结果一致。通过使用lock step机制,可以提高系统的冗余度和容错能力,减少故障的影响,并提高整个系统的可靠性和稳定性。请注意,以上示例代码只是一个简化的示例,实际的lock step机制可能会更加复杂,并涉及到硬件级别的支持。通过同时执行相同的指令序列并比较结果,可以检测到处理器核心或处理器之间的错误或故障。如果某个核心或处理器产生了。来保证系统的正常运行。
2023-09-13 16:01:07 739 2
原创 基于freeRTOS制作音乐播放器方案和框架
总结你在项目中学到的东西,以及你可以在未来项目中应用的教训。编写一个完整的音乐播放器源代码超出了这里能提供的帮助,这是一个庞大的项目,需要很多时间和专业知识。但我可以帮你开始这个项目,提供一个简单的框架和一些你可能会找到的有用资源。
2023-09-11 08:05:19 377 1
原创 新手学习RISC-V指导(历史发展,架构介绍,指令集,学习路线,汇编示例)
RISC-V架构采用了基于定长指令(Fixed-length instruction)和模块化设计方案。具体来说,RISC-V的指令长度为32位,在指令长度相同的前提下,RISC-V的指令数量比ARM、x86等指令集更少,使得其指令执行效率更高。此外,RISC-V采用了模块化的设计方案,即架构分层,并且每一层都具有可扩展性。这种设计方案可以帮助RISC-V架构更好地适应未来的技术发展和用户需求。
2023-09-04 10:11:39 263
原创 Git 的基本概念、使用方式,本地建仓和常用命令介绍
Git是一个开源的分布式版本控制系统,它可以记录文件的修改历史、协作开发和解决冲突等。下面是Git的基本概念和使用方式:仓库(Repository):Git用来存储文件和版本历史记录的地方,通常简称为Repo。工作区(Working Directory):Git工作时存放文件的目录。暂存区(Staging Area):暂存区是文件修改后,还未提交到版本库(Repository)时,存储该文件的地方。版本库(Repository):Git用来存储文件的所有历史版本记录的地方。
2023-09-04 09:58:46 55
原创 用VS Code(Visual Studio Code)写Markdown在知乎上发布文章
用Vs Code写Markdown,然后用VS Code把markdown文件发表在知乎专栏上面
2023-08-28 15:52:03 134
GNU Linker Linker Scripts
2024-03-04
NXP恩智浦电源管理芯片 PIMC VR5510 芯片手册
2024-02-08
STM32 CubeMX 中断NVIC 实战 (附源码)
2024-01-03
STM32F407 CubeMX GPIO 输入/输出按键点亮LED灯实战源码
2023-12-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人