自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

六个九十度

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

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

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

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

2024-10-14 20:11:24 503

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

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

2024-09-04 15:01:37 539

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

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

2024-08-20 19:25:52 1386 2

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

跨性别的USB-TMC

2024-08-09 17:44:07 953

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

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

2024-07-09 19:23:22 860

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

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

2024-03-16 11:45:35 1320

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

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

2024-03-02 16:57:20 1733

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

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

2024-02-07 17:43:18 511

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

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

2024-01-20 11:55:07 897 9

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

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

2023-12-23 17:55:56 1077

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

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

2023-11-18 17:23:58 4360

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

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

2023-10-21 12:05:02 577

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

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

2023-09-28 10:03:09 2600

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

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

2023-08-04 14:43:49 538

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

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

2023-06-20 11:44:57 1200

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

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

2023-05-24 11:00:00 455

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

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

2023-05-22 10:23:31 631

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

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

2023-04-21 10:19:07 625

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

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

2023-03-25 11:08:44 911

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

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

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

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

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

2023-02-15 09:17:33 383

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

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

2023-01-12 10:03:37 956

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

拆分成2个宏定义!

2022-12-13 09:58:05 456

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

不要使用void **参数

2022-11-11 10:02:09 938

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

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

2022-10-13 19:47:47 525

原创 一个Kbuild工程生成多个ko文件及其在驱动单元测试上的应用

给obj-m变量追加模块名

2022-09-02 09:18:38 524

原创 使用枚举实现编译时可变长数组

枚举值是编译时可确定的,所以能用于定义数组长度。

2022-08-12 09:57:46 221

原创 浮点型数值强转成整型时,发生了什么?

当我们将值类型强转时,必定有对应的CPU指令实现,不要以为没有开销。

2022-07-05 15:29:32 2689

原创 不用鼠标将命令行的输出粘贴到GUI

使用各个平台专属的剪贴板命令行接口

2022-06-12 10:00:00 221

原创 对匿名联合体的一些理解

概念匿名联合体是一种语法糖,用于定义结构体内一类互斥的字段,但这些字段从语义层面上来说又是跟结构体内其他字段平级的。它跟匿名结构体的语法类似,但用处感觉比后者更大些。注意事项1. 可以定义多个匿名联合体,只要字段不重复即可,匿名结构体同理。2. 包含匿名联合体的`命名类型`不一定非得是struct,也可以是另一个union,代表`互斥`场景内的`子互斥`场景。

2022-04-16 10:54:23 957

原创 C语言宏的空展开应用案例:定义仅在debug版本执行的打印函数

使用函数宏,并根据配置展开成printf或空宏

2022-03-13 08:24:21 411

原创 全志科技面试题记录

全志是我遇到的第一家要求输出面试纪要的公司

2022-02-12 14:45:33 714

原创 sudo的-E选项不起作用怎么办?

sudo ENV_VAR1=value1 ENV_VAR2=value2 any_root_cmd

2022-01-13 11:19:06 1304

原创 移植QT程序到petalinux平台

petalinux不带GCC,无法在里面编译QT应用,本文选择在arm版ubuntu里编译,再部署到petalinux

2021-12-25 19:11:39 2299 2

原创 将USB转串口驱动pl2303从5.10内核向后移植(back port)到4.15内核

背景公司的USB转串口设备是绿联的,在windows上识别为[Prolific 旺玖科技](Prolific 旺玖科技股份有限公司)的pl2303系列,但是在ubuntu 1604.4(内核版本4.15)上无法驱动。运行lsusb能看到它的product id是0x23c3,浏览公司ftp上几个linux内核源码包,发现4.19也不支持该设备,支持的起码是5.x内核。失败的尝试:升级内核到5.10在1604上编译5.10内核,安装后启动失败。搜索资料得知ubuntu LTS版本包含2种内核,一种是

2021-11-20 08:24:15 791

原创 让运行ubuntu20.04的笔记本电脑实现关闭盖子自动休眠

背景每次关盖都不休眠,而是睡眠解决办法默认安装的ubuntu不添加swap分区,需要先resize2fs加fdisk缩小主分区,然后用fdisk将腾出来的空间划成swap分区再解决grub的问题:Oct 7 11:10:08 whp-Inspiron-5537 steam.desktop[4837]: LuaDbg - Debugging stoppedOct 7 11:10:08 whp-Inspiron-5537 steam.desktop[4837]: CSteam3Client::S

2021-10-10 10:34:49 2139 3

原创 ubuntu自动登录tty终端的最简方法

背景在嵌入式系统经常需要自动登录tty,以实现业务程序开机启动的效果。网上有篇文章ubuntu自动登录tty1(shell,text)配置转发挺多,但我弄明白原理后,觉得可以进一步简化,经测试,简化成功。自动登录原理修改/etc/init/tty1.confUbuntu默认的tty1.conf内容如下# tty1 - getty## This service maintains a getty on tty1 from the point the system is# started un

2021-09-28 17:34:59 4941

原创 获取Linux内核卡死前的日志

Linux侧开启rsyslog的UDP转发,Windows侧用Visual Syslog Server for Windows查看

2021-09-10 18:16:30 8638

原创 将sudo命令自动化执行

背景在嵌入式开发环境,我们经常需要执行一些特权指令,但是每次执行执行都要手工输入密码(无法在命令行参数里直接传递密码),如果能将这些操作自动化就好了。解决办法,使用expect程序expect命令是一个能自动化执行sudo等交互式命令的程序。安装嵌入式设备一般不能连外网,所以需要离线安装,expect包依赖tcl-expect包,所以需要一起下载一起安装apt-get download tcl-expectapt-get download expectscp tcl-expect_5.45-

2021-09-07 11:33:31 690

原创 用bash分割字符串

背景最近负责移植固件升级功能,发现原来的升级脚本将固件的路径名和文件名不做区分,导致脚本必须跟固件在同一路径下才能正确调用,殊为不便。上代码:sudo mkdir -p /lib/firmware/F260/sudo cp $1 /lib/firmware/F260/echo Updating $2 ...echo F260/$1 > /sys/class/misc/PCIE_SubFpga1/d_${2}_update脚本命令行第一个参数$1就是固件的路径名,$2是器件名(表明FPG

2021-09-02 14:44:12 1670

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

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

2024-03-16

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

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

2023-09-28

空空如也

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

TA关注的人

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