自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(99)
  • 资源 (7)
  • 收藏
  • 关注

原创 使用MDK开发树莓派pico RP2040之外部 flash下载算法

由裸机思维公众号博主开发的专为树莓派Pico提供MDK开发体验的,为广大单片机爱好者重新拉回了MDK开发的舒适区。但是,正如博主文章中提到的美中不足之处,需要纯手工下载程序,所以就有了这么一个制作flash下载算法的机会,来实现flash的自动下载功能。

2023-03-13 15:55:49 1951 1

原创 【STM32H750】从零编写MDK的FLM烧录算法

上文讲过,当我们要下载编译好的镜像到Flash时,首先要做的一步就是选择合适的Flash下载算法,而这个算法本身就是一个FLM文件:代码既可以下载到内部flash,也可以下载到外部flash,或者一部分下载到内部,一部分下载到外部。

2023-01-16 15:33:53 5998

原创 利用MDK的FLM文件生成通用flash驱动

在进行Flash操作时,一般我们需要设计一套Flash抽象层,至少要包括flash的init,read、write、erase这些操作。但每更换一个单片机或者flash器件就要额外去编写flash驱动去适配init,read、write、erase。尽管有会者不难的属性加持,但适配所有的单片机或者flash器件,工作量也可想而知。本文为大家提供一个适配几乎任意单片机型号的flash驱动,之所以说是几乎,是因为我们这次要借东风,而这个东风就是Keil的FLM文件。

2023-01-08 15:06:39 6482 1

原创 支持任意数据类型的环形队列

一个C语言编写的支持任意类型的环形队列,代码开源连接:三、API 说明1. 初始化队列参数说明:参考代码:2. 入队参数说明:参考代码:3. 出队参数说明:参考代码:4. 查看参数说明:参考代码:5. 其他API队列是否为空复位PEEK出队所有查看的数据获取PEEK的状态恢复PEEK的状态获取队列的数据个数四、多类型原理说明以 为例,说明如何做到支持任意类型的数据,和不同个数的参数类型。宏DEQUEUE最终调用的是本队列默

2023-01-06 22:32:38 438

原创 C语言模拟QT的信号与槽功能

使用过QT的朋友,应该都对QT的信号与槽机制深有体会,它可以非常方便的实现类与类之间的解耦合、实现对象与对象之间的解耦合、实现两个cpp文件之间的解耦合。既然信号槽如此好用,嵌入式开发也想拥有,下边就开始用C语言一步步实现它吧…先无脑定义一些与QT中一模一样的宏,然后再思考如何实现它的功能。

2023-01-05 21:21:19 1490

原创 C语言变参函数和可变参数宏

在上面的教程中,我们学会了变参函数的定义和使用,基本套路就是使用 va_list 、 va_start 、 va_end 等宏,去解析那些可变参数列表我们找到这些参数的存储地址后,就可以对这些参数进行处理了:要么自己动手,自己处理;要么继续调用其它函来处理。i ++) {}可变参数宏的定义和使用。其实,C99 标准已经支持了这个特性,但是其它的编译器不太给力,对 C99 标准的支持。

2022-12-16 15:01:31 3981 2

原创 STM32L0 LPUART串口ORE溢出错误处理

使用STM32L0单片机主频设定2.097M,使用LPUART,115200波特率的串口进行通信,会出现偶发性的串口死机现象。

2022-09-19 16:44:30 5675

原创 使用VSCODE快速搭建ESP32的ESP-IDF开发环境(Windows 版本)

打开工程后,vscode最下方的按钮依次是连接串口,选择芯片类型,选择目录,设置选项类似于menu,然后是清除工程,编译工程,烧录方式,烧录。在环境搭建之前,我们需要在Windows系统中安装一些开发必备的工具,这些工具包括Python环境,版本控制工具Git。从VSCode插件市场中下载ESP-IDFVSCode插件,或根据。安装完成后,会提示你更新pip,打开cmd更新即可。_安装ESP-IDFVSCode插件。合宙esp32c3标准开发板。.........

2022-07-26 21:55:24 2328 1

原创 linux驱动开发篇(四)—— platform平台设备驱动

linux系列目录:linux基础篇(一)——GCC和Makefile编译过程linux基础篇(二)——静态和动态链接ARM裸机篇(一)——i.MX6ULL介绍ARM裸机篇(二)——i.MX6ULL启动过程ARM裸机篇(三)——i.MX6ULL第一个裸机程序ARM裸机篇(四)——重定位和地址无关码ARM裸机篇(五)——异常和中断linux系统移植篇(一)—— linux系统组成linux系统移植篇(二)—— Uboot使用介绍linux系统移植篇(三)—— Linux 内核使用介绍li

2022-06-08 22:06:33 3767 7

原创 linux驱动开发篇(三)—— 总线设备驱动模型

linux系列目录:linux基础篇(一)——GCC和Makefile编译过程linux基础篇(二)——静态和动态链接ARM裸机篇(一)——i.MX6ULL介绍ARM裸机篇(二)——i.MX6ULL启动过程ARM裸机篇(三)——i.MX6ULL第一个裸机程序ARM裸机篇(四)——重定位和地址无关码ARM裸机篇(五)——异常和中断linux系统移植篇(一)—— linux系统组成linux系统移植篇(二)—— Uboot使用介绍linux系统移植篇(三)—— Linux 内核使用介绍li

2022-06-06 22:20:14 2072

原创 linux驱动开发篇(二)—— 字符设备驱动框架

linux系列目录:linux基础篇(一)——GCC和Makefile编译过程linux基础篇(二)——静态和动态链接ARM裸机篇(一)——i.MX6ULL介绍ARM裸机篇(二)——i.MX6ULL启动过程ARM裸机篇(三)——i.MX6ULL第一个裸机程序ARM裸机篇(四)——重定位和地址无关码ARM裸机篇(五)——异常和中断linux系统移植篇(一)—— linux系统组成linux系统移植篇(二)—— Uboot使用介绍linux系统移植篇(三)—— Linux 内核使用介绍li

2022-06-04 23:26:03 1759

原创 linux驱动开发篇(一)—— Linux 内核模块介绍

linux系列目录:linux基础篇(一)——GCC和Makefile编译过程linux基础篇(二)——静态和动态链接ARM裸机篇(一)——i.MX6ULL介绍ARM裸机篇(二)——i.MX6ULL启动过程ARM裸机篇(三)——i.MX6ULL第一个裸机程序ARM裸机篇(四)——重定位和地址无关码ARM裸机篇(五)——异常和中断linux系统移植篇(一)—— linux系统组成linux系统移植篇(二)—— Uboot使用介绍linux系统移植篇(三)—— Linux 内核使用介绍li

2022-05-18 23:26:44 2697

原创 linux系统移植篇(四)—— 根文件系统使用介绍

linux系列目录:linux基础篇(一)——GCC和Makefile编译过程linux基础篇(二)——静态和动态链接ARM裸机篇(一)——i.MX6ULL介绍ARM裸机篇(二)——i.MX6ULL启动过程ARM裸机篇(三)——i.MX6ULL第一个裸机程序ARM裸机篇(四)——重定位和地址无关码ARM裸机篇(五)——异常和中断linux系统移植篇(一)—— linux系统组成linux系统移植篇(二)—— Uboot使用介绍linux系统移植篇(三)—— Linux 内核使用介绍li

2022-05-08 21:42:52 2786 1

原创 Uboot专题(一)—— 移植NXP官方Uboot(2016.03版本)

uboot 移植到此结束,简单总结一下 uboot 移植的过程:①、不管是购买的开发板还是自己做的开发板,基本都是参考半导体厂商的 dmeo 板,而半导体厂商会在他们自己的开发板上移植好 uboot、 linux kernel 和 rootfs 等,最终制作好 BSP包提供给用户。我们可以在官方提供的 BSP 包的基础上添加我们的板子,也就是俗称的移植。②、我们购买的开发板或者自己做的板子一般都不会原封不动的照抄半导体厂商的 demo板,都会根据实际的情况来做修改,既然有修改就必然涉及到 uboot 下

2022-05-04 23:37:46 2855

原创 linux系统移植篇(三)—— Linux 内核使用介绍

linux系列目录:linux基础篇(一)——GCC和Makefile编译过程linux基础篇(二)——静态和动态链接ARM裸机篇(一)——i.MX6ULL介绍ARM裸机篇(二)——i.MX6ULL启动过程ARM裸机篇(三)——i.MX6ULL第一个裸机程序ARM裸机篇(四)——重定位和地址无关码ARM裸机篇(五)——异常和中断linux系统移植篇(一)—— linux系统组成linux系统移植篇(二)—— Uboot使用介绍linux系统移植篇(三)——Linux 的介绍文章目录一、

2022-05-01 19:33:45 3172 2

原创 linux系统移植篇(二)—— Uboot使用介绍

linux系列目录:linux基础篇(一)——GCC和Makefile编译过程linux基础篇(二)——静态和动态链接ARM裸机篇(一)——i.MX6ULL启动过程ARM裸机篇(二)——i.MX6ULL第一个裸机程序ARM裸机篇(三)——重定位和地址无关码ARM裸机篇(四)——异常和中断linux系统移植篇(一)—— linux启动过程linux系统移植篇(二)—— Uboot移植文章目录一、Uboot介绍二、uboot烧录与启动1. 获取uboot2. uboot目录结构3. uboot

2022-04-24 23:54:10 9126

原创 ARM裸机篇(二)——i.MX6ULL启动过程

linux系列目录:linux基础篇(一)——GCC和Makefile编译过程linux基础篇(二)——静态和动态链接ARM裸机篇(二)——i.MX6ULL启动过程ARM裸机篇(三)——i.MX6ULL第一个裸机程序ARM裸机篇(四)——重定位和地址无关码文章目录一、 i.MX6ULL启动流程二、i.MX6ULL镜像格式三、镜像实例四、制作镜像五、烧写镜像一、 i.MX6ULL启动流程I.MX6U 支持多种启动方式以及启动设备,比如可以从 SD/EMMC、 NAND Flash、 QS

2022-04-23 23:21:17 4390

原创 linux系统移植篇(一)—— linux系统组成

linux系列目录:linux基础篇(一)——GCC和Makefile编译过程linux基础篇(二)——静态和动态链接ARM裸机篇(一)——i.MX6ULL启动过程ARM裸机篇(二)——i.MX6ULL第一个裸机程序ARM裸机篇(三)——重定位和地址无关码ARM裸机篇(四)——异常和中断linux系统移植篇(一)—— linux启动过程文章目录......

2022-04-21 14:40:21 6013 1

原创 ARM裸机篇(五)——异常和中断

linux系列目录:linux基础篇(一)——GCC和Makefile编译过程linux基础篇(二)——静态和动态链接ARM裸机篇(一)——i.MX6ULL启动过程ARM裸机篇(二)——i.MX6ULL第一个裸机程序ARM裸机篇(三)——重定位和地址无关码ARM裸机篇(四)——异常和中断文章目录一、异常与中断的引入1.异常与中断的处理流程2.ARM处理器程序运行的过程3.程序被中断时,怎么保存现场二、ARM处理器模式和寄存器1.处理器模式2.寄存器2.1 协处理器三、Cortex-A7 中断系

2022-04-20 23:06:27 4109

原创 ARM裸机篇(四)——重定位和地址无关码

目录linux基础篇(一)——GCC和Makefile编译过程linux基础篇(二)——静态和动态链接ARM裸机篇(一)——i.MX6ULL启动过程ARM裸机篇(二)——i.MX6ULL第一个裸机程序ARM裸机篇(三)——重定位和地址无关码一、将程序重映射到RAM在上一节中,我们将第一个裸机程序编译后,然后将映像文件重定位到了DDR3内存上,其中.bin文件的起始地址为0x80000000。重定位结束后,CPU会从这个地址读取第一条指令开始执行程序。在链接之前查看代码.text段的地址信息如

2022-04-14 22:59:11 2521

原创 ARM裸机篇(三)——i.MX6ULL第一个裸机程序

一、汇编基础处理器内部数据传输指令存储器访问指令压栈和出栈指令跳转指令算术运算指令逻辑运算指令二、汇编点亮LED灯

2022-04-10 18:58:01 2581

原创 ARM裸机篇(一)——i.MX6ULL介绍

文章目录i.MX6ULL启动流程i.MX6ULL启动流程

2022-04-07 11:53:55 19934 3

原创 linux基础篇(二)——静态和动态链接

文章目录gcc的使用方法gcc的使用方法gcc [选项] 文件名一个c/c++文件要经过预处理、编译、汇编和链接才能变成可执行文件。(1)预处理C/C++源文件中,以#开头的命令被称为预处理命令,如"#include"、宏定义命令"#define"、条件编译命令"#if、#ifdef"等。预处理是将包含(include)的文件插入原文件中、将宏定义展开、根据条件编译命令选择要使用的代码,最后将这些东西输出到一个.i文件中并等待进一步处理。(2)编译编译就是把C/C++代码(比如上

2022-03-28 22:58:48 4522

原创 OOPC精要——你的对象无处不在

领个对象回家过年吧

2022-01-23 10:16:25 684

原创 基于状态机实现XMODEM和YMODEM协议

目录XMODEM协议介绍帧格式控制字符传输逻辑超时处理状态机原理介绍状态机实现XMODEM协议XMODEM协议介绍XMODEM协议是一种使用拨号调制解调器的个人计算机通信中广泛使用的异步文件运输协议。这种协议以128字节块的形式传输数据,并且每个块都使用一个校验和过程来进行错误检测。帧格式| SOH | 信息包序号 | 信息包序号的反码 | 数据区段 | 算术校验和 |说明:SOH 帧的开头字节,代表信息包中的第一个字节信息包序号: 对 256 取模所得到当前包号,第一个信息包的序号为 1而

2021-12-09 21:46:26 2354

原创 线程安全和可重入函数

先说结论可重入函数未必是线程安全的;线程安全函数未必是可重入的。可重入函数的概念可重入的程序(函数)允许在执行的过程中被打断,并在打断所执行的代码中再次安全的调用。若一个函数是可重入的,则该函数应当满足下述条件:不能含有静态(全局)非常量数据。不能返回静态(全局)非常量数据的地址。只能处理由调用者提供的数据。不能依赖于单实例模式资源的锁。调用(call)的函数也必需是可重入的。总之一句话:上述条件就是要求可重入函数使用的所有变量都通过函数的调用者提供。举例说明,设计一个发送字符串

2021-09-26 22:45:07 2438 1

原创 致敬2020——打工人的成长故事

2020年注定是不平凡的一年,借此机会,也对我这一年做个年终总结。作为一个资深的打工人,在一线城市,二线城市,小城市都打过工的人来说,有必要记录一下我的打工心理历程了,希望可以给予一些人参考价值。1.打工人打工魂打工都是人上人博主大学自动化专业,从大二进入实验室苦练单片机技术,大学期间也算是获奖无数,不敢说出类拔碎,但自认为也算是学有所成。由于个人的一些原因,选择了一条从大城市到小城市再到更小城市的打工经历。软件行业,在大城市才有更好的学习环境和就业机会,所以我选择了去深圳,约定一年后回老家结婚。.

2020-12-25 17:37:47 2412 11

原创 rtthread的TouchGFX软件包使用说明

1、简介TouchGFX是一个基于STM32硬件由C++写成的软件框架,使用 ST 芯片的用户可以免费使用 touchgfx。touchgfx的官方文档:https://support.touchgfx.com/docs/introduction/welcome。1.1 目录结构名称说明portlcd驱动实现的例子,替换掉rtthread的lcd驱动docs文档目录examples例子目录,启动touchgfx任务Middlewarestouchgfx库

2020-12-09 16:58:41 1916

原创 【STM32H750】玩转ART-Pi(八)——添加动态模块

目录在ART-Pi H750上移植TouchGFX(一)——使用STM32CUBMX生成TouchGFX工程在ART-Pi H750上移植TouchGFX(二)——制作MDK的外部QSPI-FLASH烧录算法在ART-Pi H750上移植TouchGFX(三)——如何在ART-PI上创建TouchGFX工程实验平台:硬件: RT-Thread官方ART-PI H750开发版,正点原子4.3寸RGBLCD屏(800*480)软件: TouchGFXDesigner v4.15和 STM32

2020-11-26 17:42:32 5699 3

原创 【STM32H750】玩转ART-Pi(六)——添加FTP服务器

目录玩转ART-Pi(一)——使用STM32CUBMX生成TouchGFX工程玩转ART-Pi(二)——制作MDK的外部QSPI-FLASH烧录算法玩转ART-Pi(三)——如何在ART-PI上创建TouchGFX工程玩转ART-Pi(四)——添加文件系统玩转ART-Pi(五)——TouchGFX从文件系统中读取图片玩转ART-Pi(六)——添加网络功能...

2020-11-22 14:00:54 3960 6

原创 【STM32H750】玩转ART-Pi(五)——添加网络功能

目录在ART-Pi H750上移植TouchGFX(一)——使用STM32CUBMX生成TouchGFX工程在ART-Pi H750上移植TouchGFX(二)——制作MDK的外部QSPI-FLASH烧录算法在ART-Pi H750上移植TouchGFX(三)——如何在ART-PI上创建TouchGFX工程实验平台:硬件: RT-Thread官方ART-PI H750开发版,正点原子4.3寸RGBLCD屏(800*480)软件: TouchGFXDesigner v4.15和 STM32

2020-11-22 11:59:40 4969 6

原创 【STM32H750】玩转ART-Pi(七)——TouchGFX从文件系统中读取图片

目录在ART-Pi H750上移植TouchGFX(一)——使用STM32CUBMX生成TouchGFX工程在ART-Pi H750上移植TouchGFX(二)——制作MDK的外部QSPI-FLASH烧录算法在ART-Pi H750上移植TouchGFX(三)——如何在ART-PI上创建TouchGFX工程实验平台:硬件: RT-Thread官方ART-PI H750开发版,正点原子4.3寸RGBLCD屏(800*480)软件: TouchGFXDesigner v4.15和 STM32

2020-11-22 10:52:48 6208 6

原创 【STM32H750】玩转ART-Pi(四)——添加文件系统

目录在ART-Pi H750上移植TouchGFX(一)——使用STM32CUBMX生成TouchGFX工程在ART-Pi H750上移植TouchGFX(二)——制作MDK的外部QSPI-FLASH烧录算法在ART-Pi H750上移植TouchGFX(三)——如何在ART-PI上创建TouchGFX工程实验平台:硬件: RT-Thread官方ART-PI H750开发版,正点原子4.3寸RGBLCD屏(800*480)软件: TouchGFXDesigner v4.15和 STM32

2020-11-21 18:59:40 3711

原创 学习柿饼UI,免费送柿饼M3模块

学柿饼UI,送柿饼M3活动感谢的话柿饼UI简介柿饼UI学习资料柿饼UI的一些资料:柿饼UI官网:https://www.rt-thread.org/page/persimmonui.html柿饼M3 SDK下载地址:奶牛快传:https://realthread.cowtransfer.com/s/9248651f54b94c百度网盘:https://pan.baidu.com/share/init?surl=RQPUJnCfeeOXGlwLpuUVjw(提取码jnz5)柿饼派官方文档资料

2020-11-02 11:14:21 1634

原创 [小技巧]使用静态库lib提高TouchGFX的编译速度

准备工作:实验平台:硬件: RT-Thread官方ART-PI H750开发版,正点原子4.3寸RGBLCD屏(800*480)软件: TouchGFXDesigner v4.15和 STM32CubeMX V6.0.1,开发环境MDK v5.29以上,Visual Studio Code联系作者:加我微信,备注“加群”,加入技术交流群...

2020-10-26 22:47:36 1964 4

原创 [小技巧]使用vscode和armclang编译器改善keil开发效率

准备工作:实验平台:硬件: RT-Thread官方ART-PI H750开发版,正点原子4.3寸RGBLCD屏(800*480)软件: 最新版本的STM32CubeH7固件库,TouchGFXDesigner v4.14和 STM32CubeMX V6.0.1,开发环境MDK v5.29代码下载:联系作者:加我微信,备注“加群”,加入技术交流群...

2020-10-26 22:27:30 3997

原创 Linux入门篇(二)——操作系统之哲学原理

哲学

2020-10-12 17:38:59 608 1

原创 Linux入门篇(一)——建立方法

为什么学习linux

2020-10-09 13:49:32 563

原创 【STM32H750】玩转ART-Pi(三)——如何在ART-PI上创建TouchGFX工程

目录在ART-Pi H750上移植TouchGFX(一)——使用STM32CUBMX生成TouchGFX工程在ART-Pi H750上移植TouchGFX(二)——制作MDK的外部QSPI-FLASH烧录算法在ART-Pi H750上移植TouchGFX(三)——移植TouchGFX到RT-Thread系统在ART-Pi H750上移植TouchGFX(四)——使用RT-Thread Studio移植TouchGFX在ART-Pi H750上移植TouchGFX(五)——制作ST-LINK的外部Q

2020-09-18 16:07:42 7228 4

原创 【STM32H750】玩转ART-Pi(二)——制作MDK的外部QSPI-FLASH烧录算法

目录在ART-Pi H750上移植TouchGFX(一)——使用STM32CUBMX生成TouchGFX工程在ART-Pi H750上移植TouchGFX(二)——制作MDK的外部QSPI-FLASH烧录算法在ART-Pi H750上移植TouchGFX(三)——移植TouchGFX到RT-Thread系统在ART-Pi H750上移植TouchGFX(四)——使用RT-Thread Studio移植TouchGFX在ART-Pi H750上移植TouchGFX(五)——制作ST-LINK的外部Q

2020-09-16 12:35:10 15341 3

art_pi_module.zip

【STM32H750】玩转ART-Pi(八)——添加动态模块的例程 教程链接https://blog.csdn.net/sinat_31039061/article/details/109763932

2020-11-27

art_pi_touchgfx.zip

玩转ART-Pi(七)——TouchGFX从文件系统中读取图片的demo演示。 教程地址:https://blog.csdn.net/sinat_31039061/article/details/109763842

2020-11-22

使用静态库提高TouchGFX编译速度的例程

[小技巧]使用静态库提高TouchGFX的编译速度的例程,例程文章:https://blog.csdn.net/sinat_31039061/article/details/109292396

2020-10-26

H750_2.zip

在ART-Pi H750上移植TouchGFX(二)的demo和外部flash烧录算法,教程地址:https://blog.csdn.net/sinat_31039061/article/details/108614721

2020-09-16

H750_1.zip

在ART-Pi H750上移植TouchGFX(一)教程的demo,教程链接:https://blog.csdn.net/sinat_31039061/article/details/108599356

2020-09-16

W25QXX_Template.zip

适用于F767 核心板 QSPI W25QXX的烧写算法。根据所使用的W25QXX实际容量修改FlashDevice里的参数即可,编译后,把STM32F767_W25QXX.ELM拷贝到keil安装目录\ARM\Flash里。

2020-03-14

TouchGFX快速开发演示.zip

STM32 GUI 2019线下培训内容文档 和 touchGFX快速开发演示实例。 实验平台 硬件: STM32F746探索板 软件:最新版本的STM32CubeF7固件库, TouchGFXDesigner 和 STM32CubeMX,开发环境使用IAR EWARMv8.32

2020-03-09

空空如也

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

TA关注的人

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