- 博客(72)
- 资源 (6)
- 问答 (1)
- 收藏
- 关注

原创 stm32f103通过中断接受,定时器记时,获取红外遥控码值
由于个人原因,无法截图,但是代码亲自测试可以使用。硬件:正点原子stm32f103开发板。代码如下:功能代码remote.c#include "remote.h"#include "stdio.h"u32 receiveBuffer;u32 CodeTime=0;u32 CodeTimeBuff=0;u8 hRevFlag=0;u8 Rev_Count=0;#d...
2018-12-06 18:01:43
2154
原创 linux_kernel驱动开发_驱动调试_debug
网络为TcpClient, 通过ioctl传入server ip mac信息,创建网络数据包struct sk_buff进行 TCP三次握手,中间需要序号、检验和、长度。驱动分为两部分 mdio与gmac,配置完设备树后可以查看/sys/platform/mido/到相应设备。思路:忽略对硬件的操作在内核中创建虚拟串口,应用层操作串口, 驱动中收发。使用的是led子系统,可以在/sys/class/leds/中设置。gmac中需要将延迟设置为0并强制设置成1000M。因此仅需要设置tx 延迟即可。
2025-02-10 14:58:12
446
原创 rk3588_mipi
参考文章:docs/Common/DISPLAY/Rockchip_RK3588_Developer_Guide_MIPI_DSI2_CN.pdf。RK3588 有两个 DSI-2 控制器和两个独⽴的物理的 D/C-PHY, 可以同时最多 ⽀持两路 MIPI 输出。:MIPI DSI基于差分信号传输,可以降低引脚数量和硬件设计复杂度,并保持良好的硬件兼容性。Display Stream Compression显示流压缩。:Display serial Interface显示串行接口。
2025-01-20 18:05:50
1089
原创 linux_kernel_module_register_unregister
那就是 led_trigger_register(&timer_led_trigger)
2024-12-27 16:17:03
203
原创 rk3588_dp调试
edid保存 / # cat /sys/class/drm/card0-DP-1/edid > /data/edid.bin。文件:/drivers/gpu/drm/drm_dp_aux_dev.c。查看rk3588内部寄存器可知 需要在USB3.0控制器中打开DP0。配置:CONFIG_DRM_DP_AUX_CHARDEV=y。在设备树中需要在usb3dp端口。调整log 是一个值得参考的方式。查看vp与对应的port。modes:支持分辨率列表。enable:使能状态。status:连接状态。
2024-08-31 11:23:07
1742
原创 log_linux_ubuntu_日志
makefile添加打印日志_makefile 打印日志-优快云博客使用tee记录编译日志_optee 日志输出-优快云博客标准C库函数之perror()、strerror(),以及他们之间各种的优缺点(打印错误信息)-优快云博客
2024-08-23 17:32:02
224
1
原创 linux_pwm驱动总结
在cat /sys/kernel/debug/pwm 可以查看到pwm的设置状态。在dts中可以查看到具体的pwm号。
2024-06-28 17:10:19
290
原创 超星nm10 aarch64平台ubuntu使用移远EC200-CN4G/5G卡
AT+qnetdevctl=1,1,1播号回复ok表示成功。在串口中查看4G卡网口如下为enx020c29a39b6d。输入如下命令启动自动获取3s后按ctrl+c。
2024-02-18 15:34:48
1042
原创 03_PCI设备的访问方法_桥设备(type1)
需要访问一块PCI设备需要配置,配置是给其分配一块PCI地址空间。进行读写时设备发现是自己地址后会回应信号。
2023-12-25 16:05:02
470
原创 11.3_从构造描述符的角度理解Gadget框架
文件如下: drivers/usb/gadget/legacy/zero.c。那最后就放到了usb_udc。那目前数据结构就达成了这一步。测试程序 zero.c。其注册函数如上:通过。
2023-12-04 11:41:51
185
原创 shell编程
使用shell进行程序设计的原因之一是。你可以快速、简单地完成编程。哲学:Linux 具备自动文件类型处理功能,所以使用这些工具 的用户一般不必了解它们是用哪种语言编写的。如果想要这些工具运行得更快,常见的做法是首先在shell中实现工具的原型,一旦确定这么做,然后再用C或者C++、Perl或者其他执行得更快的语言来重新实现它们。如果 在shell中这些工具...
2023-10-25 18:10:12
222
原创 docker
Docker启动、停止、删除容器的相关指令_docker关闭容器命令-优快云博客Docker启动、停止、删除容器的相关指令_docker关闭容器命令-优快云博客查看所有容器docker ps -a
2023-10-10 17:12:50
390
原创 repo操作
同步 操作删除所有的改动:https://blog.youkuaiyun.com/kongbaidepao/article/details/54983069https://www.thinbug.com/q/5012163
2023-06-09 11:25:47
291
原创 RK3588 ubuntu rootfs开发板上根文件系统导出并制作img镜像__以及相关操作
RK3588 开发板上根文件系统导出并制作img镜像
2023-02-01 14:52:06
784
原创 2-(13/24)_输入系统_输入系统_Dispatcher线程_分发dispatch
2-(13/24)_输入系统_输入系统_Dispatcher线程_分发dispatch
2022-07-01 15:09:48
654
原创 2.7_Binder系统_transaction_stack机制_REPLY
总体发送回复如下:A进程发送BC_TRANSACTION驱动改为BR_TRANSACTION发给进程B。B进程发送bc_REPLY 驱动改为BR_REPLY给进程A。 1、发给谁?handle只表明了进程,发给进程 ?还是进程下的某个线程?一般放在binder_proc的todo链表中,唤醒等待于binder_proc,wait的空闲进程。在porc数据成员中。对于双向传输,则放在binder_thread.todo里唤醒该线程情景分析client发送BC_TRANSACTI
2022-05-31 19:50:32
372
原创 2.9_Binder系统_server的多线程实现
1、有多个client发送请求时server会忙不过来,导致创建多个线程。谁来判断忙不过来呢?client请求时会将数据放至todo链表,并且会唤醒等待wait队列的线程,如果有线程在wait队列中等待表示server忙得过来,如果没有表示忙不过来。此时驱动会向应用程序反馈,你应该多创建一些线程来处理。驱动向APP发出“创建新线程请求”的条件proc->requested_threads=0, 未处理的新线程请求。 proc->ready_threads为0,空闲的线程数pr..
2022-05-27 14:37:48
426
原创 2.7_Binder系统_transaction_stack机制_REPLY
总体流程:有两个问题1、发给谁:test_server中可能有多个线程,binder_proc进程中有todo链表, 进程的thread中也有多个链表。数据一般放在bind_proc的todo链表中,线程中哪个空闲哪个来执行(唤醒等待于binder_proc,wait的空闲进程)。proc中有todo链表与wait对于双向传输,则放放在binder_thread.todo里,如何判断是否为双向传输通过 binder_transaction判断一开始没有数据,那就放至p.
2022-05-27 10:44:20
303
原创 笨叔__内存学习
早期内存的使用方法分段分页(按需分配,不用的交换地放到磁盘中)逻辑地址:程序使用的地址。线性地址:逻辑地址转换到实际地址的中间层arm将二者统统叫为虚拟地址。CPU访问内存的过程内存管理硬件结构CPU最开始访问的是虚拟地址通过MMU进行虚拟地址到物理地址的转换。转换需要查询页表,页表存储在主存储器中。MMU为了加快转换的速度使用TLB单元,TLB中保为上一次转换的表项如果是,命中(TLB hit)如果不是,(TLB miss)如果已经查找到页表了,查看..
2021-12-21 15:54:55
349
TA创建的收藏夹 TA关注的收藏夹
TA关注的人