自定义博客皮肤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)
  • 收藏
  • 关注

原创 Win10系统WSL2烧录SD卡(USB储存设备)

众做周知在嵌入式开发中经常需要制作SD卡系统来启动开发板,最近从虚拟机转到WSL发现不能像以前那样对SD卡进行操作了,记录下解决方法(我的系统环境是Win10+WSL2)

2024-04-17 16:04:26 1319

原创 STM32MP157开发板调试笔记

​ 最近在ODYSSEY-STM32MP157C板子上移植、u-boot以及linux(其实这个开发板官方是有提供完整的系统镜像的,重新移植的原因主要是官方镜像没有使用TF-A,而是使用Uboot-SPL替代TF-A作为FSBL启动)。本以为之前在另一块stm32mp157板子上面移植过这些东西所以应该问题不大,但是由于硬件设计的差异仍然是遇到了一些问题。最后还是花费了些时间解决问题,故写这篇笔记用来记录各环节遇到的问题及解决过程。

2022-11-15 14:56:03 3505 1

原创 STM32MP157基于Yocto构建Qt镜像和SDK工具链

zzssdd2记录下整个过程以及在该过程中遇到的问题和解决方法。

2022-05-14 01:02:15 2630 3

原创 STM32MP157移植Qt5.12.10

作者:zzssdd2E-mail:zzssdd2@foxmail.com一 说明STM32MP15-Ecosystem-v2.1.0 releasetf-a-stm32mp-2.2.r2-r0u-boot-stm32mp-2020.01.r2-r0linux-stm32mp-5.4.56-r0Buildroot: buildroot-2021.02.10tslib: tslib-1.22qt-everywhere-src-5.12.10qt-opensource-linux-.

2022-03-06 14:46:15 3095

原创 STM32MP157系统移植(TF-A,U-Boot,Linux)

作者:zzssdd2E-mail:zzssdd2@foxmail.com〇 环境搭建主机系统:Ubuntu 20.04.3 LTSMPU型号:STM32MP157DAA1参考官方板:STM32MP157D-EV1(STM32MP157D-ED1)STM32MP1 Developer Package SDK : STM32MP15-Ecosystem-v2.1.0 releaseSTM32MP1 Developer Package SOURCES : STM32MP15-Ecosystem.

2022-02-11 19:35:04 5835 2

原创 IMX6ULL - Linux根文件系统(rootfs)构建

Author: zzssdd2E-mail: zzssdd2@foxmail.com一、Ubuntu-base20.04.3Ubuntu官方已经制作好了各架构、各版本的base版根文件系统,只需下载下来做少许改动即可。下载Ubuntu Base 20.04.3 LTS (Focal Fossa)ubuntu-base-20.04.3-base-armhf.tar.gz 2021-08-19 10:56 22M解压mkdir rootfssudo chmod 777 root.

2021-10-30 16:06:51 999

原创 IMX6ULL - 移植linux-imx_5.4.70_2.3.0

作者:zzssdd2E-mail:zzssdd2@foxmail.com​一、说明主机系统:Ubuntu 20.04.3 LTS开发板:TOPEET-IMX6ULLLinux版本:linux-imx_5.4.70_2.3.0交叉编译器:gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf有了前面IMX6ULL-移植uboot-imx_v2020.04_5.4.70_2.3.0的基础再进行Linux移植就会方便很多。因.

2021-10-24 14:06:47 2005 2

原创 IMX6ULL - 移植uboot-imx_v2020.04_5.4.70_2.3.0

作者:zzssdd2E-mail:zzssdd2@foxmail.com一、说明主机系统:Ubuntu 20.04.3 LTS开发板:TOPEET-IMX6ULLUboot版本:imx_v2020.04_5.4.70_2.3.0交叉编译器:gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf二、环境搭建2.1、uboot源码获取NXP维护的uboot源码:git clone https://source.codeaurora.

2021-10-17 23:13:28 2190 3

原创 Ymodem传输协议

传输协议​​​版本作者日期说明V0.1sidong@pandu.ie2021/04/24新建初稿​符号说明符号数值含义SOH0x01128字节数据包STX0x021024字节数据包EOT0x04结束传输ACK0x06正确接收回应NAK0x15错误接收回应CAN0x18传输中止C0x43请求数据传输起始帧帧头

2021-05-14 23:52:17 1430

原创 QT串口助手(五):文件操作

作者:zzssdd2E-mail:zzssdd2@foxmail.com一、前言开发环境:Qt5.12.10 + MinGW功能文件的发送数据的保存知识点QFile类的使用QTimer类的使用文本的转码与编码识别QPushButton、QProgressBar控件的使用二、功能实现本章功能主要包含两个方面,一是通过串口发送选定的文本文件,二是将接收的数据保存为本地文本文件。最后还有对《QT串口助手(三):数据接收》章节内容进行一个补充扩展。2.1、文件打开.

2021-02-07 23:03:13 4426 8

原创 QT串口助手(四):数据发送

作者:zzssdd2E-mail:zzssdd2@foxmail.com一、前言开发环境:Qt5.12.10 + MinGW实现的功能串口数据的发送ascii字符与hex字符的相互转换自动追加回车换行符(\r\n)发送数据的统计与显示发送清零定时发送涉及的知识点QSerialPort类的使用数据格式的转换QTimer类的使用控件QPlainTextEdit、QCheckBox、QPushButton、QLabel的使用二、功能实现在《QT串口助手(三.

2021-01-30 18:50:50 5891 9

原创 嵌入式开发笔记——CPLD与MCU模拟SPI通信

一、需求描述MCU需要接收来自CPLD的升级固件数据CPLD对MCU只进行发送数据,不接收MCU的数据CPLD无法告知数据传输的开始和结束,需要MCU自行判断(CPLD只是数据透传,不做数据判断)数据通信速率至少是UART通信的115200波特率PCB上MCU与CPLD之间通过3个普通IO引脚连接二、功能分析MCU与CPLD之间有3根线,那么可以选择UART通信或者SPI通信方式。由于CPLD无法通知MCU数据传输的开始与结束,MCU需要自行判别,那么MCU可以通过中断方式来检测

2021-01-25 21:05:37 4501

原创 QT串口助手(二):参数配置

作者:zzssdd2E-mail:zzssdd2@foxmail.com一、前言主要实现功能串口参数的配置:波特率、数据位、停止位、校验位本机串口设备的查询与添加显示串口设备的手动更新与打开关闭涉及的知识点串口类QSerialPort及QSerialPortInfo的使用自定义波特率的实现QComboBox下拉列表自适应文本长度显示控件QPushButton、QComboBox的使用二、功能实现下面开始逐步讲解以上列举的功能2.1、串口设备的查询添加创建一.

2021-01-25 21:05:11 2408 1

原创 QT串口助手(三):数据接收

作者:zzssdd2E-mail:zzssdd2@foxmail.com一、前言开发环境:Qt5.12.10 + MinGW实现的功能串口数据的接收ascii字符形式显示与hex字符形式显示时间戳的显示接收数据的统计与显示接收清零涉及的知识点QSerialPort类的使用数据格式的转换QTime类的使用控件QTextEdit、QCheckBox、QPushButton、QLabel的使用二、功能实现下面开始逐步讲解以上列举的功能实现2.1、数据读取.

2021-01-25 21:04:51 9038

原创 ThreadX应用笔记:内核初始化和任务调度

作者:zzssdd2E-mail:zzssdd2@foxmail.com一、前言了解ThreadX的初始化流程有助于移植使用,掌握任务的的调度有助于更加得心应手地运用该实时操作系统。二、初始化流程官方手册给出的ThreadX初始化流程如下图所示:以STM32F429 + MDK-ARM-AC6平台举例,初始化流程的前3步在startup_stm32f429xx.s文件中完成 ,该启动文件内容是STM32复位后首先执行的,主要完成以下操作:设置堆栈( __initial_sp、__hea.

2021-01-12 21:52:10 1853

原创 QT串口助手(一):功能介绍

作者:zzssdd2E-mail:zzssdd2@foxmail.com一、前言​ 在嵌入式开发过程中,经常会需要使用上位机与硬件打交道,比如AT指令测试、固件升级、参数配置等。上位机通常是借助电脑的串口或网口与硬件通信。接下来通过系列笔记来记录使用QT开发串口助手上位机的过程,之所以选择串口助手来写这一系列笔记是因为在工作中开发的其他诸如固件升级上位机、参数配置上位机、指令测试上位机等都可以基于串口助手的功能拓展而来,串口助手的功能相对来说更加综合。二、功能介绍软...

2021-01-11 21:25:06 1448 1

原创 嵌入式开发笔记——MCU配置Altera-Cyclone系列FPGA

作者:zzssdd2E-mail:zzssdd2@foxmail.com1、需求描述FPGA内部是SRAM储存结构,掉电后程序就会丢失,故需要将FPGA程序保存在掉电不丢失的储存介质中(比如FLASH、EMMC、SD卡等),在每次上电时读取程序进行配置。2、功能分析项目中使用的FPGA型号是Altera公司(现属于Intel)的Cyclone系列。在Altera的文档[Cyclone Device Handbook, Volume 1]:https://www.intel.com/conten.

2020-12-25 18:15:11 1962 3

原创 ThreadX——IPC应用之消息队列

作者:zzssdd2E-mail:zzssdd2@foxmail.com一、应用简介消息队列是RTOS中常用的一种数据通信方式,常用于任务与任务之间或是中断与任务之间的数据传递。在裸机系统中我们通常会使用全局变量的方式进行数据传递,比如在事件发生后在中断中改变数据和设置标志,然后在主循环中轮询不同的标志是否生效来对全局数据执行不同的操作,执行完毕后清除相关标志。但是这种方式需要不断地轮询标志状态,使得CPU的利用率并不高。而使用RTOS的消息队列则具有任务阻塞机制,当没有需要处理的消息...

2020-12-23 00:02:44 537

原创 嵌入式开发笔记——调试组件SEGGER_HardFaultHandle

一、前言在使用Cortex-M内核的MCU进行开发时,有时候会因为对内存错误访问等原因造成程序产生异常从而进入HardFaultHandler错误中断。如果程序结构比较复杂,尤其是运行了RTOS时可能短时间内不易定位异常产生的原因。Segger提供了一种分析CortexM内核芯片HardFault的方法,我在项目中使用后感觉该方法比较实用,本文用来记录该异常分析组件的使用。二、组件添加在SEGGER官网的Application Notes页面下提供了该组件的源码和文档下载下来后将源文件添加到工程中

2020-12-20 17:46:35 5279 3

原创 嵌入式开发笔记——调试组件SEGGER_RTT

一、前言在嵌入式开发过程中,经常会通过打印输出一些调试信息来调试参数、查找问题等,通常我的做法都是使用芯片的串口硬件设备配合串口助手软件来进行调试。但是这次项目的PCB硬件设计并未预留串口调试接口,所以想使用串口调试就不方便了。经过查找资料发现Segger 提供了一种非常方便的调试方式——自家的J-Link硬件配合J-Link RTT Viewer软件进行信息输入输出调试。二、组件添加要使用该调试组件,需要添加Segger提供的SEGGER_RTT组件代码,该代码位于J-Link软件安装目录下,而且在

2020-12-20 01:33:20 1424 1

原创 ThreadX——IPC应用之信号量

一、应用简介在RTOS的应用开发中,信号量也是经常使用到的一种用于多任务之间信息同步、资源互斥访问的一种手段,常用于协调多个任务访问同一资源的场景。信号量又分为计数信号量和互斥信号量。计数信号量可以表示整体资源数量,当获取一个资源后计数信号量减一,释放一个资源后计数信号量加一,当信号量为0时即表明资源被全部分配导致无法再获取资源,任务可以挂起等待直到有资源可用。互斥信号量是可以理解为只能维护资源数量为1的二值计数信号量(值为0或1),但是互斥信号量又不同于计数信号量,因为它还具有优先级继承的机制(优先级继

2020-12-13 21:01:01 285

原创 ThreadX——IPC应用之事件标志

一、应用简介在RTOS的应用开发中,事件标志主要是用来进行任务之间的事件通知。例如有A和B两个任务,A任务负责接收消息,B任务负责对消息响应。当A任务接收到消息后设置响应标志,B任务监测到响应标志被设置就执行消息响应。事件标志没被设置的时候任务是不会占用CPU的,不用像裸机程序那样不断轮询事件的发生。事件标志通知的方式使得CPU的利用率更高,这也是使用RTOS的优势之一。二、API说明下面列出使用事件标志组时常用的几个函数1、创建事件标志组描述:该函数会创建一个包含32个事件标志的事件

2020-12-05 23:48:02 390

原创 ThreadX移植——STM32H7+MDK-AC6平台

一、前言在uCOS全家桶宣布开源之后被微软收购的ThreadX也开源了,真是喜大普奔,对于我们这些嵌入式行业从业者来说,能够学习这些高含金量的代码对于眼界的开拓和能力的提升都是很有帮助的。ThreadX还包含了NETX、GUIX、FILEX、USBX等丰富的组件,几乎包含了嵌入式开发中的所有场景,这些组件和ThreadX-RTOS能够完美的配合完成一条龙的开发。ThreadX的github地址:[Azure RTOS (github.com)]:二、准备ThreadX在更新了几个版本之后已经提供了多个

2020-12-05 03:34:12 1377

原创 开发板直连电脑搭建NFS&TFTP环境

开发板-网线-电脑-虚拟机-NFS前言本人所使用的环境为Win10笔记本+VMware15+Ubuntu18.04+I.MX6ULL开发板一、网络配置1、将开发板与电脑之间使用网线连接,开发板上电后在电脑的网络和共享中心可以看到新增网络连接。2、点击查看详细信息,记住网卡描述、IP地址、网关、子网掩码信息,后面步骤会用到3、打开VMware–>编辑–>虚拟网络编辑器–>更改设置4、先点击还原默认设置,然后将VMnet0配置为桥接模式并选择桥接到步骤2

2020-12-01 22:48:00 1648 1

空空如也

空空如也

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

TA关注的人

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