国际哥的独立博客

「你要明白,自由思考比畅所欲言更重要。」

使用 DiskGenius 快速部署 Windows 主机

一种基于分区备份还原的系统拷贝方法

本方法用于 Windows 设备产品量产时的快速部署,在一台主机上安装系统、驱动、软件运行环境后,通过 Diskgenius 软件的硬盘分区表与分区备份还原机制(相比于 Gohst 多了分区表备份功能),实现硬盘批量写入,免去多台机器上重复安装系统与软件的繁琐。 材料准备 U盘(建议 32G 以上) Diskgenius 软件 源主机(Windows 系统)与目标主机 ...

电源不稳导致 Flash 数据丢失

STM32 问题调试记录

随着接触实际产品的时间变多,一些莫名其妙的问题突发,常常让人摸不着头脑。故障往往与硬件、软件、操作系统机制等有关,不同的原因相互交织,使得排查变得困难。 这次来看一个电源不稳导致 Flash 数据丢失的案例。 情况介绍 产品使用 STM32 作为电机控制板 MCU,出现 OTA 断电后变砖的现象,经排查是由于配置区 Flash 数据丢失(被意外擦除),导致 BootLoader 无法正...

日用 Debian 配置笔记

Linux 作为日常使用

在所有 Linux 发行版中,对 Debian(标准发音:“跌彼岸”而非“低板”)+lxde情有独钟,每次安装后配置命令都记不住,好记性不如烂笔头,还是做一下笔记。 安装 推荐使用 live-cd 版本镜像,包含了可在移动存储器运行的 Debian,安装还能在无线网卡驱动以及软件包上省不少心。 硬盘及分区 习惯将硬盘分出 3 个区,分别挂载根目录、home 目录和作为交换分区。如有必...

翻转 IO,通信卡死?

STM32 GPIO 异常调试记录

共享资源互斥访问,临界区和锁,每个软件工程师大概都能说上几嘴,我自认为也略知一二,可真当问题出现,情况又会是怎样? 事件经过 项目中使用 STM32 进行 RS485 通信,2 线方式,半双工通信,通过 UASRT 外设驱动接收发器芯片,需要控制收发切换管脚,同时,闪烁 LED 作为工作指示。 诡异的事情在于,当程序快速翻转 LED GPIO 时,总线通信便会卡住,并在一定时间内随机出...

搭建码云 CI 和 CLA 签署服务(二)

Jenkins 安装配置与部署

本系列文章将介绍如何在码云搭建 CI 构建和 CLA 签署服务,共分为三篇: 搭建码云 CI 和 CLA 签署服务(一)- 开源项目自动化构建与协议签署 搭建码云 CI 和 CLA 签署服务(二)- Jenkins 安装配置与部署 搭建码云 CI 和 CLA 签署服务(三)- CLA 签署检查服务搭建 本文为第二篇,详细记录 Jenkins 安装配置的步骤及注意事项。 一、Jenk...

搭建码云 CI 和 CLA 签署服务(一)

开源项目自动化构建与协议签署

和编码不同,在生产力工具上付出努力当然是值得的。 这几周基于 Jenkins 及 openEuler/ci-bot 搭建了 RT-Thread 码云 CI 和 CLA 服务,为 RT-Thread 社区接受 bsp 代码贡献做准备。由于这方面现有的资料有限,没太多前人经验参考,摸爬滚打后决定写下点什么。 概述 & 文章目录 开源项目接触久了,CI 和 CLA 最终是绕不开的。G...

深入理解 STM32 双堆栈机制

关于堆栈你该知道的知识

堆栈堆栈,「堆」和「栈」 经过无数技术书籍,以及各类技术博主苦口婆心的提醒,恐怕没几个人会再把堆和栈混为一谈,精明的开发者都明白,堆栈堆栈,「堆」和「栈」是不同的两种数据结构,具有各自的内存分配和使用方式。 众所周知,栈由编译器自动分配释放,堆由程序员手动分配释放,栈存放函数形参、局部变量,堆内存申请了记得释放……诸如此类,老生常谈。众所不周知,在不同的体系结构、裸机/操作系统下,堆栈在...

条条大路通罗马,个个 Socket 通网卡

RT-Thread 网络框架及相关组件学习笔记

写这篇文章的缘由是升级项目中 LwIP 版本引发的一些感受和理解 ,因此思考角度会从协议栈出发向上向下延伸代入,偏向框架整体与部分的关联,要提的一点是,既然是个人理解,加上本人能力知识有限,难免会存在不严谨甚至错误的地方,请读者批判看待并欢迎指正。 网络系统分层思想 得益于 uIP、LwIP 等轻量级网络协议栈的广泛使用,嵌入式设备在拥有完整 TCP/IP 功能的同时,又保证了对处理器资...

硬核音频系列(一)—— 声音信息的表示

基础概念扫盲,PCM 编码方式

关于「硬核音频系列」 千万别被标题所迷惑,这个系列讲的可不是什么高深莫测的理论,或者奇淫巧技骚操作,而是个人在接触数字音频知识以来的切身体会,以及少量代码实践后的学习笔记。在参与公司项目的过程中,先后了解了 PCM 编码、压缩编解码、淡入淡出等知识,因此本系列文章也将按照这个顺序组织,内容偏向入门小白级别,同时结合嵌入式系统的特点,分为三篇记录总结我的音频学习之路: 硬核音频系列(...

硬核音频系列(二)—— 音频文件编解码格式 ADPCM

动手实现 adpcm 解码器

硬核音频系列文章列表: 硬核音频系列(一)—— 声音信息的表示:基础概念扫盲,PCM 编码方式 硬核音频系列(二)—— 音频文件编解码格式:动手实现 adpcm 解码器 硬核音频系列(三)—— 线性淡入淡出:算法思路、实现与优化方法描述 在系列第二篇,会介绍一些关于音频数据存储、处理的内容,并回答上一篇末尾提出的两个问题:如何减小 PCM 格式数据的体积和管理这些数据。 ...