自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 Keil MDK AC(ARM Compiler)5不同优化等级效果

通过上述测试结果可知,Keil MDK AC5 的-default 优化等级和 -O2 效果一致,-O0~3 对 ROM(FLASH)的大小进行了优化,对 RAM 空间无明显影响。

2024-09-18 13:36:25 334

原创 关于Keil MDK 默认编译器选项的设置 AC5 与 AC6

当创建一个新项目时,以下规则适用于相关的Arm编译器:对于基于Armv8-M的设备(Cortex-M23/M33/M35P/M55/M85和Star-MC1),选择Arm Compiler 6,这是唯一的选项。对于Armv6-M (Cortex-M0/M0+)和Armv7-M (Cortex-M3/M4/M7),选择Arm Compiler 6,也可以选择使用Arm Compiler 5。

2024-09-13 14:46:23 582

原创 stm32 *hd*.s、 *md*.s、 *mdp*.s 三种头文件的区别

MD启动文件适用于STM32的中密度系列。这些微控制器具有更高的性能和更多的内存,因此MD启动文件相对于LD启动文件更为复杂。MD启动文件不仅关注基本的硬件初始化和系统时钟设置,还可能包括更多的功能,如中断管理、外设初始化等。HD启动文件适用于STM32的高密度系列。这些微控制器具有更高的性能和丰富的外设资源,因此HD启动文件相对于MD启动文件更为复杂。HD启动文件通常包含更多的功能,如高级时钟配置、外设时钟控制、内存管理等。MD(Medium Density)启动文件。

2024-09-11 11:43:07 207

原创 git submodule update --init --recursive 解读

如果子模块已经被克隆,这个选项会确保子模块的配置是最新的。git submodule update --init --recursive 是一个 用于更新 Git 仓库中的子模块Git 命令。这个命令通常在克隆了一个包含子模块的 Git 仓库后执行,以确保所有子模块也被克隆并更新到正确的状态。如果不使用 --recursive 选项,子模块内的子模块将不会被更新。–recursive:这个选项告诉 Git 递归地更新所有子模块。即使子模块中还包含其他子模块,这个选项也会确保所有层级的子模块都被更新。

2024-09-10 11:08:14 404

原创 IAR 修改样例工程名称

一个IAR 工程可仅由*.ewp项目(project)文件和*.eww工作空间(workspace)文件这两个构成。这里我需要修改样例工程的名称·仅仅需要修改这两个文件的名称为想要的修改为的目标名称,以及在 VSCode 的等文本编辑器中大开*.eww文件,修改其中的原有*.ewp名称为目标文件。

2024-08-21 16:24:22 469

原创 Keil屏幕中间有蓝色竖线——浅谈Keil 和 IAR 中Right Margin线的显示和取消

有时候看别人的Keil屏幕中间有蓝色竖线,还以为是显示器坏了。其实不然,这条竖线被称之为“Right Margin”,右边界或者右边界线,是文档排版中的一个术语,指的是页面上文本内容的最右边界。它定义了文本可以延伸到的最远距离,以确保内容不会超出页面的可视区域。在文档编辑软件中,用户可以根据需要调整右边缘,以控制文本的布局和格式。

2024-06-20 18:10:44 477

原创 Win10 中使用自带的 get-filehash 命令实现文件校验

这将列出 Get-FileHash 命令的所有语法,包括可用的算法选项。是一个PowerShell命令,用于计算文件的哈希值。哈希值是一个唯一标识符,可以用来验证文件的完整性和验证文件是否被篡改。使用Win10 中自带的 get-filehash 命令实现文件校验(Hash校验,SHA256校验,MD5校验等)命令可以帮助你确保文件的安全性和完整性,特别是在下载或传输文件之后。这将计算指定目录及其所有子目录中所有文件的哈希值。这将把计算出的哈希值输出到指定的文本文件中。这将计算指定目录下所有文件的哈希值。

2024-06-18 11:39:44 539

原创 解决 VSCode 插件参数配置过程中报如下警告: unable to write into user setings.

这里一般是 settings.json 文件中出现的格式或语法错误的问题。修改文件后,便可解决。打开VS Code的配置文件settings.json。仔细观察会发现,上述。格式文件中缺少了一个。

2024-05-31 15:32:19 554

原创 IAR 中关于 __iar_program_start(); 函数的使用

在 IAR 编译器中,当你从 IAR IDE 或命令行编译一个项目时,链接器配置文件(通常是一个 .icf 文件)会指定重定位和加载程序到目标硬件的详细信息。在嵌入式系统开发中,理解和配置程序的入口点是非常重要的,因为它影响到程序的加载、执行和调试过程。:它定义了程序的起始地址,当程序被加载到内存并开始执行时,CPU 将从这个地址开始执行指令。:在程序的执行过程中,如果需要动态重定位,链接器将使用这个符号来确定新的执行地址。:链接器使用这个符号来确定程序的加载地址,确保程序在正确的内存位置开始执行。

2024-05-30 09:53:43 571

原创 Keil MDK 运行程序不复位及不下载直接进入调式模式

有时我们希望能够连接到目标板上运行的应用程序,以分析当前上下文中的内存和变量。但是调试器在启动时会发出硬件重置,导致我的应用程序的当前状态丢失。禁用这些选项后,调试器启动,目标硬件停止在程序计数器的当前位置。Keill MDK 的 µVision调试器通常会重置目标硬件,以确保一致的启动行为。有几个调试器选项会影响启动行为。目标选项 - 调试 - 设置 - 连接后重置(选择目标选项 - 调试 - 设置 - 连接作为NORMAL)如果下图所示的3个选项都被禁用,调试器将在不执行硬件重置的情况下启动。

2024-05-29 18:10:13 609

原创 IAR 只调试不下载及只调试不复位

【代码】IAR 只调试不下载及只调试不复位。

2024-05-29 17:03:22 389

原创 在芯片设计中的前仿后仿、tape out 、wafer out 和FPGA验证之间的关系

后端仿真是在芯片设计的后端流程完成之后进行的,此时芯片的物理设计已经完成,包括布局(Placement)和布线(Routing)。后端仿真的目的是验证经过布局布线后的电路在实际工艺条件下的性能,如时序(Timing)、功耗(Power)和信号完整性(Signal Integrity)。在芯片设计中,前仿(前端仿真)、后仿(后端仿真)、Tapeout、Wafer out 和 FPGA 验证是芯片从设计到生产的不同阶段,每个阶段都有其特定的目的和重要性。前端仿真通常指的是在芯片设计的逻辑设计阶段进行的仿真。

2024-05-29 14:13:59 960

原创 嵌入式软件C语言开发中 ALLOC_GLOBALS 宏的应用

嵌入式软件C语言开发中通过这种方式,可以控制全局变量的定义,确保它们只在单个编译单元中定义一次,而在其他需要使用这些全局变量的编译单元中,通过 extern 声明来引用它们,从而避免全局变量的多重定义问题。如果没有定义宏 ALLOC_GLOBALS,EXTERN 将被定义为 extern,这意味着全局变量将被声明为外部链接,允许在其他编译单元中使用,但不会在当前文件中定义。这段代码是C或C++预处理器指令的一个示例,其主要作用是控制全局变量的定义,以避免在多个编译单元中重复定义相同的全局变量。

2024-05-23 11:02:46 195

原创 TFT-LCD 驱动配置过程中的镜像操作和从 RGB565 到 BGR565的配置问题

这里使用到的是 ST7789H2 屏幕驱动,通过查阅该驱动的datasheet手册,可知在进行屏幕驱动寄存器配置过程中对 MADCTL (36h) 该地址的寄存器进行写值可进行对屏幕的旋转镜像显示及选择使用 RGB 或 BGR 的颜色顺序。本文记录了在使用 FSMC 驱动 TFT-LCD 显示屏过程中遇到的显示图像出现的图像镜像问题,和图像显示中出现蓝色和红色颜色反转问题的处理过程。需要注意的是在配置为横屏或竖屏模式时,同时也要修改对应显示域的长宽参数。

2024-04-02 14:37:38 596 1

原创 从零开始移植CANopenNode协议栈

CANopen 的诞生和作用CANopen 协议是在20世纪90年代末,由总部位于德国纽伦堡的CiA (CAN-in-Automation)组织(http://www.can-cia.org)在CAL(CAN Application Layer)的基础上发展而来。由于CANopen协议的创始人团队也是CAN-bus的创始人团队,此协议充分发挥了CAN-bus所具备的所有优势,特别是 CiA 组织的主席蔡豪格((Holger Zeltwanger)先生对于CANopen协议坚持开放、免费、非盈利的原则。

2023-12-14 18:15:00 2849 7

原创 MM32 硬件 CRC32 算法实现配置

MM32硬件 CRC32 算法实现配置。

2023-08-02 17:26:22 200

原创 Tera Term 下载教程

Tera Term 是一个基于开源协议 BSD License.的虚拟终端的程序,支持 telnet、 SSH 1 & 2和串口。在官网下载最新版本,找不到下载链接,让人一头雾水。根据现有的资料尝试,得到如下方法可得到下载链接并进行下载。

2022-10-17 10:22:25 7485 1

原创 MDK AC6 不支持在代码中改变优化等级

可对单个 C 文件进行优化等级选择。

2022-10-13 15:07:17 277

转载 Keil MDK & IAR for ARM 局部优化指令

MDK & IAR 局部优化指令

2022-10-11 17:31:52 396

原创 ST7735 & ST7735S 图像位置偏移问题【已解决】

ST7735,TFT SPI

2022-08-18 23:08:43 2043

原创 Ubuntu esp-idf 固件烧录

在执行烧录命令前需按住esp32-c3的boot键,执行烧录命令后松开。ubuntu环境下esp-idf固件烧录踩坑记录。通过比较插入esp32前后设备列表来找到串口号。修改对应串口号权限(我查到的是ttyACM0)

2022-07-24 00:37:20 510

原创 C语言BCC异或效验

C语言BCC异或效验uint8_t getbcc(uint8_t* data, uint16_t length){ uint8_t bcc=0x00; for (uint16_t i = 0;i<length;) { bcc ^= data[i++]; } return bcc;}

2021-01-03 16:18:48 1237

原创 C语言中char*与unsigned char*的区别

C语言中char* 与unsigned char* 的区别C语言中char与unsigned char的区别C语言中char*与unsigned char*的区别指针的类型决定了指向的数据的大小和数据的解析方式常用char *去指向字符串,unsigned char *指向字节流。在涉及到类型提升的上下文中,要注意使用char和unsinged char的区别。C语言中char与unsigned char的区别相同点: 在内存中都是一个字节,8位(2^8=256),都能表示256个数字(-12

2021-01-03 14:31:15 793

原创 CSDN-markdown编辑器

C语言进阶笔记变量类型的使用新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入变量类型的使用你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文

2021-01-03 00:33:31 138

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除