自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

六个九十度

嵌入式软件开发的一些经验

  • 博客(227)
  • 资源 (2)
  • 收藏
  • 关注

原创 Linux下通过sysfs读写GPIO的一个注意事项

要加上系统给所选gpio控制器分配的base编号!

2025-11-15 18:35:11 400

原创 使用mobaxterm的ssh隧道实现远程访问虚拟机里的Linux系统

remote server和ssh server的IP都配置成虚拟机的IP,端口号都配置成22即可

2025-11-10 13:52:15 405

原创 busybox的syslog不支持毫秒级时间戳的一种规避方法

定义变参函数宏来封装syslog,或变参函数来封装vsyslog,里面先插入毫秒级时间戳,再打印app的日志信息

2025-11-01 11:54:07 850

原创 用gcc的Statement Exprs实现可返回剩余时间的,支持任意关系表达式的超时等待

用gcc的C语言扩展statement-expression实现能返回剩余等待时间的超时等待函数

2025-10-25 10:27:42 759

原创 C语言接收结构体返回值的3种方式

只要左值是结构体的值类型就行,不一定非得是临时声明的局部变量

2025-10-18 09:49:01 342

原创 一种让PetaLinux 2020.2从QSPI flash启动的简单办法

先找到手动启动linux的uboot命令序列,再将其填写到boot.scr,并放置到eMMC的FAT分区

2025-09-13 16:11:59 1178

原创 一种命令行版的网络调试助手

命令行版的网络调试助手,无任何依赖

2025-08-16 14:31:38 910

原创 定义短的魔术数字时小心负数的整型提升

这段C代码输出"invalid magic"的原因是整型提升导致的类型不匹配。short类型的0xcafe被提升为有符号整数0xffffcafe,而0xcafe被当作无符号整数0x0000cafe,导致比较不相等。解决方法是将常量强制转换为short类型:(short)0xcafe,或使用无符号类型避免此问题。这体现了C语言隐式类型转换的陷阱,在处理魔术数字时需特别注意数据类型的选择和显式类型转换。

2025-08-11 19:37:38 324

原创 将Linux代码从用户态挪到内核的一种简便方法

如果只是想把一部分代码从用户态挪到内核态,不需要编写驱动,只需要编写一个自定义misc设备,然后在内核模块入口里注册即可。

2025-07-24 19:00:58 290

原创 zynq-7000平台uboot莫名进入命令行模式

RX引脚要做上拉

2025-05-22 11:24:45 394

原创 对基于再生龙制作的Linux系统的硬盘进行扩容

Linux将分区和文件系统分开看待,先用parted扩容分区,再用resize2fs扩容文件系统

2025-05-12 17:35:11 539

原创 fatal error: stdarg.h: No such file or directory错误的一种冷门原因

gcc版本过高或过低,需要安装匹配版本,并通过CC环境变量告知make

2025-02-13 10:30:06 773

原创 在Windows上读写Linux磁盘镜像的一种方法

VMware的共享文件夹及其挂载到虚拟机Linux系统里的方法

2024-12-28 13:45:51 1340

原创 解决TI的CCS在安装了维响加密软件的电脑上编译C/C++代码失败问题

将cl6x、acp6x和acpia6x这三个exe添加到白名单

2024-12-19 11:30:55 709

原创 最左侧1问题的一种二分法解法

动态规划和夹逼法

2024-12-10 18:10:16 332

原创 NVME盘未格式化导致Ubuntu20.04启动慢

systemd执行任意操作的超时时间是90秒!

2024-10-14 20:11:24 773

原创 将RK3588平台的TMC等USB function驱动挪出内核源码树

先加载ko,再在configfs里执行mkdir func、ln -s func config/、echo gadget > UDC三步骤

2024-09-04 15:01:37 765

原创 支持高带宽数据采集卡的XDMA优化之路

XDMA存在非常多的优化点,希望这些优化措施能帮到你

2024-08-20 19:25:52 3200 7

原创 基于USB host控制器实现的TMC驱动

跨性别的USB-TMC

2024-08-09 17:44:07 1832 3

原创 在Linux下直接修改磁盘镜像文件的内容

用losetup命令实现虚拟光驱的效果,但是losetup支持修改镜像内容

2024-07-09 19:23:22 1882 1

原创 基于GT911触控IC的电容屏在MSP430上的驱动

GT911的COOR_ADDR寄存器只要读了,就一定要写0清零,切记。

2024-03-16 11:45:35 1829

原创 STM32作为SPI slave与主机异步通信

slave开机后处于SPI接收主机command状态,收到用户输入后abort当前的接收,进入SPI发送状态,发送完毕后,恢复接收command状态。

2024-03-02 16:57:20 2364

原创 TI的电量计驱动在卸载时导致Linux卡死

TI工程师对devm前缀打头的函数的使用有问题

2024-02-07 17:43:18 663

原创 将TI的电量计Linux驱动从4.4内核移植到5.10

在理解Linux和厂商代码的前提下,将报错的宏找到等价替代,或直接删除。

2024-01-20 11:55:07 1537 11

原创 增量式旋转编码器在STM32平台上的应用

将编码器输出的两路信号的其中一路当作触发器,检测另一路的电平高低,从而确定旋转方向。

2023-12-23 17:55:56 1357

原创 STM32 HAL库函数HAL_SPI_Receive_IT和HAL_SPI_Receive的区别

带IT后缀的版本只开启中断,实际的接收在中断回调里完成。

2023-11-18 17:23:58 7107

原创 从Linux的tty_struct指针获取驱动上下文

ctx = container_of(tty->port, struct gpib_tty_ctx, port);

2023-10-21 12:05:02 640

原创 在linux下预览markdown的方法,转换成html和pdf

使用pandoc转换成html和pdf,再用firefox和evince预览

2023-09-28 10:03:09 2973

原创 使用sed批量修改跨多行的配置文件

让sed的起始行和终止行均通过模式串指定

2023-08-04 14:43:49 753

原创 用wget等命令行工具下载Jenkins上的文件

Jenkins有官方的脚本接口,正确使用即可。

2023-06-20 11:44:57 1445

原创 有符号定点小数的31bit问题

有符号定点小数从内存表示转换成浮点数时,注意溢出问题。

2023-05-24 11:00:00 555

原创 巧用bash的eval命令解析配置文件

eval命令特别适合key=value这种格式的配置文件的解析,可以直接将value赋值给环境变量key

2023-05-22 10:23:31 817

原创 将ISP DMA写到DDR的数据unpack成可被7yuv预览的RAW图

ISP DMA的特点是一端字节对齐访问,一端流式访问,且净荷数据不一定是8bit的整数倍

2023-04-21 10:19:07 811

原创 查看从ISP pipeline导出的RAW数据

关键是弄明白ISP pipeline的DMA的工作原理

2023-03-25 11:08:44 1161

转载 【转贴+排版】测度论简介——一个通往异世界的大门

加法不能定义在不可数无穷集合上

2023-03-08 10:56:18 1501 1

原创 分析C语言位域的访问开销

访问位域有开销,这包括移位、截断等操作,但考虑到内存局部性原理,这些操作都不影响cache,因此性能并不会差多少。

2023-02-15 09:17:33 503

原创 巧用gitbash的scp命令实现跨网段的文件直传

scp user@服务器:/a.out root@开发板:/a.out

2023-01-12 10:03:37 1160

原创 C语言的预处理器无法先展开宏再拼接符号?可以!

拆分成2个宏定义!

2022-12-13 09:58:05 643

原创 gcc对void型指针的类型检查有问题?

不要使用void **参数

2022-11-11 10:02:09 1098

原创 原来函数入参类型不匹配gcc也能编译通过啊

入参类型不匹配可能会导致内存访问越界!

2022-10-13 19:47:47 737

基于GT911触控IC的电容屏在MSP430上的驱动

基于GT911触控IC的电容屏在MSP430上的驱动

2024-03-16

在linux下预览markdown的方法,转换成html和pdf

在linux下预览markdown的方法,转换成html和pdf

2023-09-28

空空如也

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

TA关注的人

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