受够了盗版jlink,我手搓了一个高速DAPLINK下载器 MicroLink在DAPLink的基础上将调试器、USB转串口、离线下载器和固件升级工具等多种功能集成到一个设备中,为开发者提供一站式解决方案。
使用MDK开发树莓派pico RP2040之外部 flash下载算法 由裸机思维公众号博主开发的专为树莓派Pico提供MDK开发体验的,为广大单片机爱好者重新拉回了MDK开发的舒适区。但是,正如博主文章中提到的美中不足之处,需要纯手工下载程序,所以就有了这么一个制作flash下载算法的机会,来实现flash的自动下载功能。
【STM32H750】从零编写MDK的FLM烧录算法 上文讲过,当我们要下载编译好的镜像到Flash时,首先要做的一步就是选择合适的Flash下载算法,而这个算法本身就是一个FLM文件:代码既可以下载到内部flash,也可以下载到外部flash,或者一部分下载到内部,一部分下载到外部。
利用MDK的FLM文件生成通用flash驱动 在进行Flash操作时,一般我们需要设计一套Flash抽象层,至少要包括flash的init,read、write、erase这些操作。但每更换一个单片机或者flash器件就要额外去编写flash驱动去适配init,read、write、erase。尽管有会者不难的属性加持,但适配所有的单片机或者flash器件,工作量也可想而知。本文为大家提供一个适配几乎任意单片机型号的flash驱动,之所以说是几乎,是因为我们这次要借东风,而这个东风就是Keil的FLM文件。
探索字节队列的魔法:多类型支持、函数重载与线程安全 一个C语言编写的支持任意类型的环形队列,代码开源连接:三、API 说明1. 初始化队列参数说明:参考代码:2. 入队参数说明:参考代码:3. 出队参数说明:参考代码:4. 查看参数说明:参考代码:5. 其他API队列是否为空复位PEEK出队所有查看的数据获取PEEK的状态恢复PEEK的状态获取队列的数据个数四、多类型原理说明以 为例,说明如何做到支持任意类型的数据,和不同个数的参数类型。宏DEQUEUE最终调用的是本队列默
C语言模拟QT的信号与槽功能 使用过QT的朋友,应该都对QT的信号与槽机制深有体会,它可以非常方便的实现类与类之间的解耦合、实现对象与对象之间的解耦合、实现两个cpp文件之间的解耦合。既然信号槽如此好用,嵌入式开发也想拥有,下边就开始用C语言一步步实现它吧…先无脑定义一些与QT中一模一样的宏,然后再思考如何实现它的功能。
C语言变参函数和可变参数宏 在上面的教程中,我们学会了变参函数的定义和使用,基本套路就是使用 va_list 、 va_start 、 va_end 等宏,去解析那些可变参数列表我们找到这些参数的存储地址后,就可以对这些参数进行处理了:要么自己动手,自己处理;要么继续调用其它函来处理。i ++) {}可变参数宏的定义和使用。其实,C99 标准已经支持了这个特性,但是其它的编译器不太给力,对 C99 标准的支持。
使用VSCODE快速搭建ESP32的ESP-IDF开发环境(Windows 版本) 打开工程后,vscode最下方的按钮依次是连接串口,选择芯片类型,选择目录,设置选项类似于menu,然后是清除工程,编译工程,烧录方式,烧录。在环境搭建之前,我们需要在Windows系统中安装一些开发必备的工具,这些工具包括Python环境,版本控制工具Git。从VSCode插件市场中下载ESP-IDFVSCode插件,或根据。安装完成后,会提示你更新pip,打开cmd更新即可。_安装ESP-IDFVSCode插件。合宙esp32c3标准开发板。.........
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
linux驱动开发篇(三)—— 总线设备驱动模型 linux系列目录:linux基础篇(一)——GCC和Makefile编译过程linux基础篇(二)——静态和动态链接ARM裸机篇(一)——i.MX6ULL介绍ARM裸机篇(二)——i.MX6ULL启动过程ARM裸机篇(三)——i.MX6ULL第一个裸机程序ARM裸机篇(四)——重定位和地址无关码ARM裸机篇(五)——异常和中断linux系统移植篇(一)—— linux系统组成linux系统移植篇(二)—— Uboot使用介绍linux系统移植篇(三)—— Linux 内核使用介绍li
linux驱动开发篇(二)—— 字符设备驱动框架 linux系列目录:linux基础篇(一)——GCC和Makefile编译过程linux基础篇(二)——静态和动态链接ARM裸机篇(一)——i.MX6ULL介绍ARM裸机篇(二)——i.MX6ULL启动过程ARM裸机篇(三)——i.MX6ULL第一个裸机程序ARM裸机篇(四)——重定位和地址无关码ARM裸机篇(五)——异常和中断linux系统移植篇(一)—— linux系统组成linux系统移植篇(二)—— Uboot使用介绍linux系统移植篇(三)—— Linux 内核使用介绍li
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
linux系统移植篇(四)—— 根文件系统使用介绍 linux系列目录:linux基础篇(一)——GCC和Makefile编译过程linux基础篇(二)——静态和动态链接ARM裸机篇(一)——i.MX6ULL介绍ARM裸机篇(二)——i.MX6ULL启动过程ARM裸机篇(三)——i.MX6ULL第一个裸机程序ARM裸机篇(四)——重定位和地址无关码ARM裸机篇(五)——异常和中断linux系统移植篇(一)—— linux系统组成linux系统移植篇(二)—— Uboot使用介绍linux系统移植篇(三)—— Linux 内核使用介绍li
Uboot专题(一)—— 移植NXP官方Uboot(2016.03版本) uboot 移植到此结束,简单总结一下 uboot 移植的过程:①、不管是购买的开发板还是自己做的开发板,基本都是参考半导体厂商的 dmeo 板,而半导体厂商会在他们自己的开发板上移植好 uboot、 linux kernel 和 rootfs 等,最终制作好 BSP包提供给用户。我们可以在官方提供的 BSP 包的基础上添加我们的板子,也就是俗称的移植。②、我们购买的开发板或者自己做的板子一般都不会原封不动的照抄半导体厂商的 demo板,都会根据实际的情况来做修改,既然有修改就必然涉及到 uboot 下
linux系统移植篇(三)—— Linux 内核使用介绍 linux系列目录:linux基础篇(一)——GCC和Makefile编译过程linux基础篇(二)——静态和动态链接ARM裸机篇(一)——i.MX6ULL介绍ARM裸机篇(二)——i.MX6ULL启动过程ARM裸机篇(三)——i.MX6ULL第一个裸机程序ARM裸机篇(四)——重定位和地址无关码ARM裸机篇(五)——异常和中断linux系统移植篇(一)—— linux系统组成linux系统移植篇(二)—— Uboot使用介绍linux系统移植篇(三)——Linux 的介绍文章目录一、
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
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