
【Cortex-M33 专栏】
文章平均质量分 88
ARMv8M Cortex-M33 专栏
主公讲 ARM
竹杖芒鞋轻胜马,谁怕?一蓑烟雨任平生
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【ARMv8M Cortex-M33 系列 2.4 -- JFlash 烧写之链接脚本介绍】
在 RT-Thread 实时操作系统中,链接脚本(Linker Script)定义了如何将代码和数据映射到微控制器的内存中。链接脚本通常以.ld为扩展名。对于特定的微控制器,如 Renesas R7FA4M2AC3C,链接脚本中的MEMORY部分将详细说明内存的配置,包括不同区域的起始地址和大小。以下是MEMORYMEMORY/* 定义内存区域 */ROM (rx) : ORIGIN = 0x00000000, LENGTH = 512K /* 代码段,Flash内存 */原创 2024-03-09 09:20:35 · 1353 阅读 · 0 评论 -
【ARMv8M Cortex-M33 系列 8.1 -- RT-Thread 堆内存 检查命令 free 实现及介绍】
在RT-Thread系统中,通常可以通过函数获取当前的堆内存使用信息,然后你可以包装这个函数来显示剩余的堆空间。if (total!= RT_NULL)= RT_NULL)rt-thread 中其实已经实现了cmd_freereturn 0;所以在终端执行freemsh > help。原创 2024-02-19 17:10:49 · 1420 阅读 · 0 评论 -
【ARMv8M Cortex-M33 系列 8 -- RT-Thread 移植 posix pthread】
RT-Thread是一个面向嵌入式设备的实时操作系统(RTOS),它拥有微内核、多线程调度等特性,并且提供丰富的组件库。RT-Thread也提供了对POSIX标准的部分支持,包括pthread接口, 具体见。328。原创 2024-02-19 15:09:44 · 943 阅读 · 0 评论 -
【ARMv8M Cortex-M33 系列 2.4 -- Jlink 连接问题: the connected probe appears to be a j-link clone】
版本,使用这个版本也可以对 cortex-m33 进行debug,但是在选择型号的时候不要选择自己芯片版本,只选择 Cortex-M33 即可,可以使用如下命令。,每次 jlink 大概只能使用十几秒,然后就会自动断开。将以前安装的 jlink 全部卸载掉,然后重新装个。这样就可以解决断开连接的问题了。原创 2024-01-26 10:49:06 · 1708 阅读 · 0 评论 -
【ARMv8M Cortex-M33 系列 7 -- RA4M2 移植 RT-Thread 问题总结】
由于没有打印信息也不知道是什么原因导致 hardfault, 此外由于很久没有调试Cortex-M系列的core了,也不知道去查看哪些寄存器来分析错误原因?经过几天的调试,成功将rt-thead 移植到 RA4M2(Cortex-M33 核)上,thread 和 shell 命令已经都成功支持。原创 2024-01-22 20:55:12 · 1118 阅读 · 0 评论 -
【ARMv8M Cortex-M33 系列 7.4 -- 如何使能 usagefault | memmange fault | bus fault 中断】
例如,如果 PC 被设置为指向一个数据区域或者一个禁止执行的内存区域,将无法执行有效指令,从而导致完整性错误。是一个粘滞(sticky)标志,这意味着一旦设置,它将保持被设置的状态,直到软件明确清除它。如果使用的是 RT-Thread 或其他类似的实时操作系统,通常这些异常处理函数已经由操作系统提供,或者你可以在操作系统框架内自定义它们。错误通常是严重的程序错误,可能需要对系统进行全面的审查和测试,以确保代码的健壮性和稳定性。异常将被使能,并且在相应的故障条件发生时,处理器将进入对应的异常处理程序。原创 2024-01-19 19:50:34 · 1769 阅读 · 0 评论 -
【ARMv8M Cortex-M33 系列 7.3 -- EXC_RETURN 与 LR 及 PC 的关系详细介绍】
值得注意的是,这里所说的 LR 寄存器在异常发生时会被自动设置为一个特殊的值(EXC_RETURN),该值包含了关于返回时所需使用的堆栈指针(MSP 或 PSP)以及是否使用了浮点寄存器等信息。在从异常返回时,处理器将这些值出栈到寄存器中。在 ARM Cortex-M33 微控制器上,从异常(如中断)返回时,处理器会从堆栈中出栈(pop)寄存器的值来恢复到异常发生之前的状态。当发生异常时,处理器会自动将当前的程序状态保存到堆栈中,包括程序计数器(PC)的值和其他重要寄存器,并将特定的值加载到。原创 2024-01-19 19:42:02 · 2338 阅读 · 0 评论 -
【ARMv8M Cortex-M33 系列 7.2 -- HardFault 问题定位 1】
rt-thread 在退出的时候发生了是什么原因?且 LR 的值为在 ARM Cortex-M 架构中,堆栈指针 (SP) 必须始终保持 8 字节对齐。这是因为从 ARMv7-M 开始,堆栈帧可能包含额外的浮点寄存器,而要求 8 字节对齐以实现更有效的访问和与浮点寄存器大小相一致。在进入异常处理时,处理器会自动将 、返回地址、、、、、 和 压入堆栈;如果使用浮点单元且由异常激活,则还会压入 和 寄存器。发生 的原因可能很多,但当你看到 (链接寄存器)的值为 时,这表明异常返回时处理器试图从进程堆栈原创 2024-01-19 19:24:37 · 2592 阅读 · 0 评论 -
【ARMv8M Cortex-M33 系列 7.1 -- xPSR | CFSR | HFSR | BFAR | MMFAR 寄存器】
在 ARM Cortex-M33 微控制器上,当发生异常或错误时,一些特殊的寄存器提供了用于调试和错误处理的关键信息。这些寄存器包括程序状态寄存器 (xPSR)、可配置故障状态寄存器 (CFSR)、硬件故障状态寄存器 (HFSR)、总线故障地址寄存器 (BFAR) 和内存管理故障地址寄存器 (MMFAR) 以及UFSR。原创 2024-01-19 19:03:45 · 4458 阅读 · 0 评论 -
【ARMv8M Cortex-M33 系列 2 -- Cortex-M33 JLink 连接 及 JFlash 烧写介绍】
是 J-Link 调试器的命令行接口,它允许用户通过命令行执行一系列操作,例如编程、擦除、调试等。J-Link 是 SEGGER 提供的一款流行的 JTAG 调试器,它支持多个平台和处理器。出现这个问题是由于Segger 后面把 JFLASH 的漏洞给补上了,所以用户需要先下载一个。再使用JLink 烧写时会遇到 “原创 2023-12-27 09:55:07 · 2007 阅读 · 0 评论 -
【ARMv8M Cortex-M33 系列 2.3 -- SEGGER JFlash 烧写命令介绍】
本文以介绍烧写 Renesas RA4M2 为例,对 JFlash 进行简单介绍。它是 ARM Cortex-M33 微控制器的型号之一。烧写前你需要先确保你有正确的.hex或.bin文件,这个文件包含你要烧录到微控制器的程序。选择设备: 首先,你需要选择正确的设备型号。可以在 J-Flash 软件的设备数据库中找到或使用与之兼容的设备型号。建立连接: 决定使用 JTAG 还是 SWD 接口连接微控制器,并设置适当的通信速度。擦除闪存: 在编程之前,通常需要先擦除微控制器的闪存。编程文件: 将你的。原创 2023-12-27 17:39:46 · 2968 阅读 · 0 评论 -
【ARMv8M Cortex-M33 系列 3 -- RT-Thread renesas/ra4m2-eco 移植编译篇】
是一个宏定义,用于启用特定版本的 POSIX 兼容性特性。POSIX(Portable Operating System Interface)是一个旨在促进 UNIX 操作系统兼容性的标准集合,它定义了一系列跨不同 UNIX 系统的应用程序编程接口(API)。在 C 语言源文件中定义宏可以告诉编译器程序打算使用哪个版本的 POSIX 标准。这个宏的值是一个长整数,指定了希望遵循的 POSIX 标准的版本年份。200809L上面这行代码指示编译器启用 2008 年发布的 POSIX 标准中定义的特性。原创 2023-12-22 15:23:15 · 1628 阅读 · 0 评论 -
【ARMv8M Cortex-M33 系列 2.1 -- Cortex-M33 使用 .hex /.srec 文件介绍】
hex文件通常用于微控制器编程,包括 ARM Cortex-M 系列微控制器。这种文件格式是一种文本记录,用于在编程时传递二进制信息。.hex文件格式最常见的是英特尔十六进制(Intel Hex)格式,它由英特尔公司开发,用于在80x86和相关处理器系列中传输二进制数据。原创 2023-12-27 21:55:39 · 1506 阅读 · 5 评论 -
【ARMv8M Cortex-M33 系列 3.1 -- RT-Thread renesas/ra4m2-eco 移植编译篇 nosys.specs 介绍】
在使用 GNU 编译器集合 (GCC) 编译嵌入式 C/C++ 程序时,-specs是一个编译器选项,它指定了链接器应该使用的 specs 文件。Specs 文件是 GCC 的一个特性,它允许程序员和系统构建者控制编译器和链接器的默认设置。是一个特殊的 specs 文件,它用于告诉链接器不链接任何系统库,这在裸机环境(没有操作系统的环境)中特别有用。原创 2023-12-30 10:59:59 · 1172 阅读 · 1 评论 -
【ARMv8M Cortex-M33 系列 1.1 -- SAU Non-secure Callable(NSC) 介绍 】
ARMv8-M 架构引入了 TrustZone 技术,它提供了一种机制来实现在单个处理器内部的安全隔离。安全状态(Secure state)和非安全状态在此架构下,可以同时运行安全和非安全代码,并且通过硬件保护确保两者之间的隔离。为了允许非安全代码安全地调用安全函数而不会破坏系统的安全性,ARMv8-M 引入了一种特殊的机制,即非安全可调用(N)区域。NSC 区域是安全内存中的一个特殊区域,安全世界可以将其配置为允许非安全世界的代码进行限制性调用。原创 2023-12-23 10:51:45 · 1622 阅读 · 0 评论 -
【ARMv8M Cortex-M33 系列 1 -- SAU 介绍】
在 ARMv8-M 架构中,SAU(Security Attribution Unit)是安全属性单元,用于配置和管理内存区域的安全属性。SAU 是 ARM TrustZone 技术的一部分,该技术提供了在单个处理器中创建安全(Secure)和非安全(Non-secure)状态的能力,允许系统同时运行受信任的安全代码和非受信任的非安全代码。SAU 能够定义多个内存区域,并为每个内存区域指定其是否可被安全状态和/或非安全状态访问。原创 2023-12-22 19:14:42 · 2269 阅读 · 0 评论