- 博客(205)
- 资源 (43)
- 收藏
- 关注
原创 lauterbach trace32 link
download trace32 softwareTRACE32® Download Trace32 Software for full installation
2025-01-16 15:06:30
141
原创 【无标题】
下载后对源代码进行编译,编译需要使用交叉编译(之间最开始直接make,后面编译自己的代码时会报错比如“include/uapi/linux/types.h:4:23: fatal error: asm/types.h: 没有那个文件或目录”,后面重新交叉编译linux内核代码后就没出现问题了)。下载目标机器对应Linux内核版本的源代码,解压后放到要编译的代码的目录下,下载链接:https://cdn.kernel.org/pub/linux/kernel/。查看生成的.ko文件属性,可以看到生成的是。
2024-12-11 09:57:24
543
原创 编译适用于ubuntu OS的内核,并打包成deb包
reference:Kernel/BuildYourOwnKernel - Ubuntu Wikigit ~ubuntu-kernel/ubuntu/+source/linux/+git/jammy - [no description]export ARCH=arm64export CROSS_COMPILE=aarch64-linux-gnu-export $(dpkg-architecture -aarm64); fakeroot debian/rules genconfigsfakeroot deb
2024-12-09 15:27:24
402
原创 ubuntu 18.04 插入e1000e unknow symbol ptp_clock_register
ubuntu 18.04 插入e1000e.ko失败 dmesg 打印 unknow symbol ptp_clock_register。
2024-11-29 14:05:53
196
原创 批处理设置Java环境变量/命令行设置Java环境变量
1 这段批处理程序可以自动设置Java环境变量@echo offIF EXIST %1\bin\java.exe (rem 如输入正确的 Java2SDK 安装目录,开始设置环境变量@setx JAVA_HOME %1@setx path %path%;%JAVA_HOME%\bin@setx classpath %classpath%;.@setx classpa
2024-06-16 10:52:16
296
1
原创 C++中的类模板详细讲述
当使用包含编译模式时,类模板成员的定义被包含在使用其实例的所有程序文本文件中,何时何地编译器实例化类模板成员的定义,我们并不能精确地知晓,为解决这个问题,标准C++提供了显式实例声明:关键字template后面跟着关键字class以及类模板实例的名字。这种编译模式下,类模板的成员函数和静态成员的定义必须被包含在“要将它们实例化”的所有文件中,如果一个成员函数被定义在类模板定义之外,那么这些定义应该被放在含有该类模板定义的头文件中。当一个类模板名被用作另一个模板定义中的类型指示符时,必须指定完整的实参表。
2024-06-16 10:51:53
628
1
原创 Nginx为什么比Apache Httpd高效:原理篇
一、进程、线程?进程是具有一定独立功能的,在计算机中已经运行的程序的实体。在早期系统中(如linux 2.4以前),进程是基本运作单位,在支持线程的系统中(如windows,linux2.6)中,线程才是基本的运作单位,而进程只是线程的容器。程序 本身只是指令、数据及其组织形式的描述,进程才是程序(那些指令和数据)的真正运行实例。若干进程有可能与同一个程序相关系,且每个进程皆可以同步(循...
2024-06-16 10:50:53
781
1
原创 【src】怎样在Linux 上使用src.rpm源码包?
一、说明如果我们是以软件包的格式来划分的,常见的Linux发行版主要可以分为两类,类ReadHat系列和类Debian系列,这两类系统分别提供了自己的软件包管理系统和相应的工具。类RedHat系统中软件包的后缀是rpm,类Debian系统中软件包的后缀是deb。另一方面,类RedHat系统提供了同名的rpm命令来安装、卸载、升级rpm软件包,类Debian系统同样提供了dpkg命令来对后缀是deb的软件包进行安装、卸载和升级等操作。rpm的全称是Redhat Package Manager,常见
2024-06-16 10:49:55
1494
1
原创 鲲鹏服务器BIOS发展及技术
BIOS是在操作系统OS(Operating System)之下的底层运行程序,BIOS是计算机硬件和OS之间的抽象层,用来设置硬件,为OS运行做准备,BIOS在系统中的位置如下图所示。功能是检查电脑是否良好,通常完整的POST自检将包括对CPU,640K基本内存,1M以上的扩展内存,ROM,主板,CMOS存储器,串并口,显示卡,软硬盘子系统及键盘进行测试,其中很重要的一部分是BIOS设置,主要是对硬件设置的一些参数,当电脑启动时会读取这些参数,并和实际硬件设置进行比较,如果不符合,会影响系统的启动。
2024-06-16 10:38:43
1019
原创 ubuntu_ft configs
CONFIG_ARCH_PHYTIUM policyCONFIG_EDAC_PHYTIUM policyCONFIG_KEYBOARD_PHYTIUM policy
2024-06-06 16:19:14
1005
原创 process to develop linux 5.4
***//***/5.4/***/ft/***/if (!/***/if (!/***/
2024-06-06 11:26:28
343
原创 以太网扫盲(四)phy驱动link up流程分析
在调试网口驱动的过程中发现phy芯片的驱动框架结构还有点复杂,不仔细研究的话还不好搞懂,另外百度到的资料也不够全面,这篇就总结梳理一下这方面的知识。1、用轮询/中断的方式通过 mdio 总线读取 phy 芯片的状态。2、在 phy link 状态变化的情况下,正确配置 mac 的状态。(例如:根据 phy 自协商的速率 10/100/1000M 把 mac 配置成对应速率)下面就以 stmmac 网口驱动为例,展示一下 phy 驱动整个调用过程。
2024-06-04 23:50:36
3950
原创 ubuntu编译打包的时候不想要linux-image-unsigned-xxxx.deb
不想要linux-image-unsigned-xxxx.deb。ubuntu内核源码编译的时候呢打包总是打成。想要linux-image-xxxx.deb。
2024-06-04 22:07:02
625
1
原创 嵌入式linux开发,Linux下访问PHY芯片寄存器,获取phyID号,获取phy的link状态
寄存器1都是 Status register,有16个bit, 第2个bit为link 状态, 第5个bit为自动协商, 一般这个状态寄存器的数值为: 0x796d。大多数phy芯片的寄存器0为控制寄存器, 寄存器1 为状态寄存器。1、在嵌入式linux开发中,可以通过smi/mdio总线通信访问PHY芯片寄存器,从而获取PHY芯片的状态、ID号等相关信息。嵌入式linux开发,Linux下访问PHY芯片寄存器,获取phyID号,获取phy的link状态。2bit : link 状态: up。
2024-06-01 20:41:14
750
原创 设备树 — platform_device和platform_driver如何让匹配
可以发先追溯到底,是利用"compatible"来匹配的,即设备树加载之后,内核会自动把设备树节点转换成 platform_device这种格式,同时把名字放到of_node这个地方。id_tabel是根据id_table表中的每一个和设备名字进行匹配,这样一个驱动可以支持多个名称的设备。1.ti的omap8250驱动可以支持好多个型号的芯片,其它芯片只要这个的驱动基础上做很小的改动就可通用。当然除了第一个之外,其它的只要没匹配到,后面的几个匹配还会继续执行的。主要是在匹配函数里面的支持设备树。
2024-06-01 19:01:28
917
原创 设备树 — platform_device和platform_driver如何让匹配
可以发先追溯到底,是利用"compatible"来匹配的,即设备树加载之后,内核会自动把设备树节点转换成 platform_device这种格式,同时把名字放到of_node这个地方。id_tabel是根据id_table表中的每一个和设备名字进行匹配,这样一个驱动可以支持多个名称的设备。1.ti的omap8250驱动可以支持好多个型号的芯片,其它芯片只要这个的驱动基础上做很小的改动就可通用。当然除了第一个之外,其它的只要没匹配到,后面的几个匹配还会继续执行的。主要是在匹配函数里面的支持设备树。
2024-06-01 18:38:25
644
原创 make modules 和 make modules_install
make modules是单独编译模块,驱动被配置成M的都是modules,modules不会被编译进内核image,需要单独安装到rootfs。如:make ARCH=arm64 modules_install INSTALL_MOD_PATH="modules_install_path"如:make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- modules。直接make,不加任何参数,就是make all,包含make modules。
2024-05-30 19:21:38
1433
原创 Debug linux kernel
內核錯誤報告通常附帶如下堆棧轉儲:這樣的堆棧跟蹤提供了足夠的信息來識別內核源代碼中發生錯誤的那一行。根據問題的 嚴重性,它還可能包含一詞,比如:...儘管有或其他類型的堆棧跟蹤,但通常需要找到出問題的行來識別和處理缺 陷。在本章中,我們將參考“Oops”來了解需要分析的各種堆棧跟蹤。如果內核是用編譯的,那麼可以使用文件: scripts/decode_stacktrace.sh。
2024-05-30 13:04:14
635
原创 gcc:预处理语句--#define、#error和#warning
warning和#error语句相似,但它报告的错误类型只是警告信息,没有#error那么报告的那么严重,所以会产生一个警告信息,并继续编译。只有__unix__被定义的情况下,上面的代码才会编译成功。
2024-05-30 09:07:36
348
原创 TSO、UFO、GSO、LRO、GRO和RSS介绍(ethtool命令)
更加详细的说明,请参看连接:linux tcp GSO和TSO实现linux tcp GSO和TSO实现详解# ethtool -hRTL Ethtool(2.6.36):Usage:ethtool DEVNAME Display standard information about device ethtool -s|--change DEVNAME Change generic options [ speed %d ]
2024-05-26 22:19:51
1282
原创 linux内核调试技巧四:gdb调试+vmlinux
注意linux中很多文件是没有后缀的,比如我见到的这个elf文件的文件名是“vmlinux-3.10.62”,没有后缀。(2)执行 arm-wrs-linux-gnu-gdb vmlinux-3.10.62。(3)输入 list*(函数名+函数内偏移) 即可查看特定位置的代码。vmlinux是个elf文件,它的符号表中包含了所有内核符号。要想看得更仔细,可以用gdb调试工具。(1)进入vmlinux所在目录。既然是elf文件那就可以用。里面的方法直接查看符号表。
2024-05-26 15:28:13
949
原创 DRM驱动(五)之drm_atomic_state
drm_mode_setcrtc和drm_mode_atomic_ioctl从函数调用来看都会调用drm_atomic_commit(state) 也就是说应用传入的参数最终会转换成struct drm_atomic_state;__drm_mode_set_config_internal的内容比较少,主要调用drm_atomic_helper_set_config。将以上信息转为struct drm_mode_set并调用__drm_mode_set_config_internal。
2024-05-26 10:38:51
1152
原创 linux中sysfs创建设备节点的方法和DEVICE_ATTR
使用DEVICE_ATTR宏,可以定义一个struct device_attribute设备属性,使用函数sysfs_create_group或sysfs_create_file便可以在设备目录下创建具有show和store方法的节点。能方便的进行调试。
2024-05-23 20:03:37
1531
原创 设备树 — platform_device和platform_driver如何让匹配
可以发先追溯到底,是利用"compatible"来匹配的,即设备树加载之后,内核会自动把设备树节点转换成 platform_device这种格式,同时把名字放到of_node这个地方。id_tabel是根据id_table表中的每一个和设备名字进行匹配,这样一个驱动可以支持多个名称的设备。1.ti的omap8250驱动可以支持好多个型号的芯片,其它芯片只要这个的驱动基础上做很小的改动就可通用。当然除了第一个之外,其它的只要没匹配到,后面的几个匹配还会继续执行的。主要是在匹配函数里面的支持设备树。
2024-05-23 20:00:40
790
原创 C 语言printf打印各种数据类型的方法(u8/s8/u16/s16.../u64/double/float)
long long/unsigned long long ----->十六进制 %0llx。long long/unsigned long long ----->八进制 %0llo。unsigned long/long---->十六进制 %0lx。unsigned int/int------>十六进制 %0x。unsigned long/long---->八进制 %0lo。unsigned int/int------>八进制 %0o。数据类型 打印格式。
2024-05-23 10:08:14
1538
原创 交叉编译Ubuntu Debian内核 for raspiberry 4B && 另一种开机自动连接wifi的方法
接着插卡,开机,就启动不了了。然后我在百度、谷歌、搜狗搜索了两天,了解了内核发展史上,使用过的各种压缩解压算法,比如lz4,gzip等等等。而用 debian/rules编译内核时,跳过了配置这一步(用了debian/rules的配置方法,当然其配置文件也存放在某个目录下,但不在源码根目录下)。而如何用debian/rules的方式编译外部模块,又找不到太多的相关资料,只知道个m-a(module-assistant,https://wiki.debian.org/ModuleAssistant)命令。
2024-05-22 22:12:30
604
1
原创 驱动编译错误 /bin/sh: scripts/mod/modpost
出现这样的错误,说明scripts下没有生成相应的文件,cd到kernel所在目录,执行: make scripts。然后 make ,就没有这样的错误了.
2024-05-22 17:37:06
228
linux-modules-extra-5.15.0-111-generic_5.15.0-111.121_arm64.deb
2024-12-01
linux-modules-5.15.0-111-generic_5.15.0-111.121_arm64.deb
2024-12-01
linux-image-5.15.0-111-generic-5.15.0-111.121-arm64.deb
2024-12-01
linux-buildinfo-5.15.0-111-generic_5.15.0-111.121_arm64.deb
2024-12-01
linux-headers-5.15.0-111-generic_5.15.0-111.121_arm64.deb
2024-12-01
censtos kernel source
2021-01-05
alsa-to-use-guide
2019-04-06
libenchant
2018-08-16
AT89C52 amtel单片机芯片微控制器(MCU)cadence orcad pcb
2025-01-02
windows 11 CP2102 USB to UART Bridge Controller 驱动
2024-12-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人