- 博客(89)
- 资源 (12)
- 收藏
- 关注

原创 copy_from_user: Warning: the frame size of xxx bytes is larger than 1024 bytes 这个警告如何修改
在linux的kernel space编程时用到了copy_from_user这个函数,在编译的时候出现了这样的警告:Warning: the frame size of xxx bytes is larger than 1024 bytes我调用copy_from_us
2011-08-07 19:21:40
6678

原创 const char * 的终结贴(看完无需其他任何文章,从此不再蛋疼)
const char *ptr 究竟限制的是谁?送一个检测字符串是否为点分制的函数
2010-10-18 18:19:00
10430
3

原创 O_RDWR O_CREAT等open函数标志位在哪里定义?(格式还要编译,答案在最后一段)
man openOPEN(2) Linux Programmer’s Manual OPEN(2)NAME open, creat - open and possibly create a file or deviceSYNOPSIS #include #include
2009-04-07 14:44:00
22816
原创 RK1103B 平台出现 ERROR: The rootfs.img file size is larger than the partition size! 的解法
如果之前 lunch 设置了其他的配置, 就最好 Build.sh clean 之后再去 Build.sh lunch , 最后再去Build.sh 进行编译和打包. 之前改完之后没有生效, 又折腾了几个脚本,浪费了很多时间.在RK平台在进行 ./Build.sh lunch 选择平台的配置之后, 进行 Build.sh 进行编译和打包之后,会出现如下的报错。可以看到.BoardConfig.mk文件里面的配置是5M, 也就是 0x500000。可以看到实际的 rootfs.img的大小是9.4M。
2025-03-14 17:19:26
210
原创 warning: using the result of an assignment as a condition
改法 :先将表达式的结果计算出来,在传入 if ,for,while 之类的()里面去。GCC还是希望代码尽量的没有争议,将表达式的结果去进行判断。警告的意思 :使用了表达式的结果作为条件判断的变量。
2025-01-04 14:33:31
153
原创 ld: skipping incompatible when searching for -l
在host前缀的路径是给上位机使用的, 是用x86编译的;在 target 前缀的路径是给板子使用的, 是用xrisc-v 交叉编译的 . 虽然文件名是一摸一样的,但是 link 的时候要注意分辨.出错的场景 :在链接 glib 的时候,错误的将x86架构的库链接到需要交叉编译的文件。而真正需要链接的是 risc-v 版本的glib库。通过查看文件格式得到,第1个错误的文件是x86架构的. 正确的文件是 risc-v 架构的. 修改正确的链接路径之后错误消失。: 进迭时空 K1 开发板。
2024-11-14 17:18:43
550
原创 ISP 缩略语
VRF / vrf RAW image with information at the end RAW 图像,末尾有信息。AFM Auto Focus Monitor 自动对焦监视器。CCM Color Correction Matrix 颜色校正矩阵。
2024-09-26 16:57:29
614
原创 Linux PTP 测量实操 (IEEE 1588)
如果需要在开发板上面使用的话,就需要交叉编译,将makefile里面的gcc替换为你平台的toolchain就可以了.因为是串口连接, 所以只有一个中端, 就决定, 一个网口后台跑 server, 一个网口前台跑 client.第5节的介绍得知, 当前的网卡既支持 Hardware 模式, 又支持 software 模式.可以看到软模式执行良好. 我的环境, 硬模式有问题,出错log如下,还不知道原因.我的环境 : 开发板上的双网口,使用网线直连, 可以ping通.获取代码可以通过git。
2024-09-12 14:24:20
920
原创 RTL8852bs 初始化流程
梳理了 RTL8852bs wifi 驱动的加载流程. 方便熟悉代码逻辑和超找需要的功能.我看了所有的代码,但是还是没有找到是哪里设置的AP模式.
2024-08-02 11:56:04
628
原创 Docker 安装本地相册管理工具 immich(类似Google Photos 或者 群辉Photos)
自从存在Google Photos的东西被Google给封了之后, 就知道东西绝对不能放在云端,一定要放在自己的手里, 一直找不到太好的相册程序,后来看到 异次元 上面有一个工具, 我就试试本地的效果如何.之后启动的时候出现了一个端口不能使用的错误, 2283不能使用, 找到一个简单的解决方法, 就是关闭防火墙。正常启动之后, 访问本地的2283端口, 出现了下面的页面,证明安装成功, 之后就可以在本地胡搞了。文件准备之后, 启动docker, 会下载所需的文件。也可以使用 异次元提供的命令行。
2024-03-19 16:46:32
5462
2
原创 Window 11(23H2) 安装 Docker(4.28)
验证安装是否成功, 启动桌面的图标, 第一次要等挺久的, 然后有2个示例demo, 点击第一个, 会下载一个叫做 welcome-to-docker的。点击一下 蓝色的字体 8080:80, 出现了下面的页面, 就证明docker已经是可用的了.要安装docker, Window 11 有一个准备工作, 就是开启Hyper-V和启用。4.28大约是488M. 点击安装,一直下一步,完成之后,就可以使用了。(3) 适用于Linux的Windows子系统。在重启之后, 可以安装docer本身了.
2024-03-19 16:12:11
1418
原创 Python 多文件合并 / 二进制合并 binMerge (手把手教程)
将算法给出的6个cfg文件和6个config文件合并一个bin文件(用于一次加载,而不是分开接在来节省时间).: 6个算法特性的 cfg 和 weight 文件: 将12个文件合并一个一个bin文件, 并给出各个文件的 start address 和 size 的 #define。
2024-03-14 15:31:46
1905
原创 initrd(4) - Linux man page initrd(4) - Linux 手册页
对于 NFS 根文件系统,通过让 /linuxrc 将 NFS 设置写入文件 /proc/sys/kernel/nfs-root-name 和 /proc/sys/kernel/nfs-root-addrs,然后将0xff(例如,伪 NFS 设备编号)写入文件 /proc/sys/kernel/real-root-dev 来更改根设备。在当前内核中,如果目录 /initrd 不存在,那么如果 /dev/ram0 被任何进程使用或挂载了任何文件系统,则 /dev/ram0 将不会被完全卸载。
2024-01-06 17:51:06
1105
1
原创 openssl 交叉编译(uclibc)
使用 1.1.1w的版本,最新的3.0.11试了,编译不过,很多gcc的写法问题(error: initializer element is not constant)结果出现了错误,我看了下,环境变量里面明明是有的,却识别不出来,直接修改makefile,使用绝地地址。解压到 Document 目录下, home下也可以,不想记命令了,直接右键就可以解压。和之前 glibc 编译的是一样的,之前install失败的时候,目录是不全的。这里就没有出过了,看下install地址的信息。
2023-09-21 17:28:29
572
原创 如何判断linux 文件(或lib)是由uclibc还是glibc编译出来的?
可以看到,使用这个命令,如果这个lib是由 uclibc 编译的,会类似grep出一些字串。灵活运用strings命令可以完成其他的功能,之前看的帖子给的例子是看编译器版本的。试了几个方法,file 不行, objdump 也不行。工作中使用的编译环境有2套编译器,一个是glibc,一个是uclibc。而如果这个lib是由 glibc 编译出来的,就不会grep任何的信息。那和如何来判断一个文件是由哪个编译器编译的呢?我改动之后可以完成我的需求。
2023-09-16 21:17:40
820
原创 calltree的安装与使用
安装好后,软链接到/usr/bin目录下 ln -s /home/XXX/calltree/OBJ/x86_64-linux-cc/calltree /usr/bin/calltree。-np和-p是相反的。打包完成从之前的500M变为了120M, 还是太大了, 而且没有html看着格式好看,那还是看html的版本算了.使用calltree生成的dot来绘图的程序是 graphviz, 可以从下面的官网页面下载.-xvcg参数表示导出一个可以使用VCG软件处理的格式的文件。
2023-07-11 11:42:48
499
原创 Ubuntu 更新 CMake 版本
项目中有时候会出现CMake版本小于最低要求的情况,实际上没有有必要这么高的要求,但是在不能改对方代码的情况下,只能去升级自身的版本了.tar -xzf ***.tar.gz [-C .] ## 这个不用显示各个文件,去掉v这个参数, 没有 -C 就解压到本目录。之后放到Home下面的Document目录来解压,右键就行了,不用tar的命令了。尝试了网上说的直接update之后再次安装的方式,结果版本号没有改变。所以只能试试网上的源码安装的方式, 结果成功了.就成功了,时间有点久.
2023-06-15 15:29:34
4893
1
原创 Linux kernel 编译 exfat.ko ntfs.ko 来支持exFat 和 NTFS 分区
项目需求想让设备支持 exFat 和 NTFS 的文件格式. 默认的内核是不支持的,因为内核要限定1.5M之内, 所以很多东西都裁剪掉了. 而且不是所有项目都有这个需求,所以就需要编译为 ko ,按需加载;至此, 将编译好的ko放到文件系统里面加载, 就可以 mount exfat 和 ntfs 这2种文件类型的tf卡了.按 Ctrl + F 输入 ntfs , 就可以找到对应配置的位置, 也支持在此页面直接配置.之后使用 make -j8 来进行编译, 就可以得到 exfat.ko 和 ntfs.ko.
2023-04-07 19:59:06
891
翻译 ARM Cortex -A Series Programmer’s Guide for ARMv8-A Chapter 13 Memory Ordering 第13章 内存排列
缩写我放前面:TLB Translation Lookaside Buffer.旁路转换缓冲,或称为页表缓冲 .TLB(translation lookaside buffer)介绍_limanjihe的博客-优快云博客扩展: 一个操作系统的实现 TLB工作原理 什么是TLB ? TLB:Translation lookaside buffer,即旁路转换缓冲,或称为页表缓冲;里面存放的是一些页表文件(虚拟地址到物理地址的转换表)。又称为快表技术。由于“页表”存储在主存储器中,查询页表所付出的代...
2022-04-02 17:43:52
644
原创 Ubuntu 出现 Depends: xxxx (= x.xx-cubuntux.x) but x.xx-xubuntux.x is installed这类问题的原因和解法
Ubuntu 出现 Depends: xxxx 的解决方法
2022-02-23 10:18:57
2900
原创 Shell 学习笔记(持续)
0.参考shell编程 — ShellScript 1.0.0 文档shell在线中文手册abs,shell中文教程,shell中文教程 - 海底苍鹰(tank)博客cplusplus.com - The C++ Resources Network一.变量Shell变量:Shell变量的定义、赋值和删除1.定义# Shell 支持以下三种定义变量的方式:variable=valuevariable='value'variable="value"注意,赋...
2022-02-16 10:47:51
726
原创 开源可靠UDP协议汇总分析
项目需求:使用UDP协议,将视频数据(约30MBytes/Sec) ,尽可能正确的传递给与设备直连的PC.错误的数据直接丢弃.老大给出的信息:UDP不会乱序,因为没有人会特意打乱数据,既然给网卡送数据是顺序送的,当然应该是顺序的.实测的结果 :UDP的数据包一定是乱的.因为这就是UDP的特征之一. 哲学一点说,就是如果不维护某一个特征,则必然不会出现.按照熵的解释, 对一个混乱的系统,不做规范和梳理,系统必然会朝着熵增加的趋势,也就是越来越混乱的方向发展的.UDP另一个的让人崩溃的特点,除了乱序之
2022-01-04 20:35:46
2029
原创 01 ubuntu 安装 glfw
1.从下载glfw 3.3.5的源码:glfw 3.3.52.解压使用图像页面右键解压,或者使用命令unzip glfw-3.3.5.zip -d glfw-3.3.53.安装依赖sudo apt-get install cmake xorg-dev libglu1-mesa-dev4.编译和安装cd glfw3-3.3.5// 建立目录放置cmake的临时文件sudo mkdir glfw-buildsudo cmake ../sudo makesudo make insta
2021-11-22 18:30:45
4497
原创 Makefile模板(可执行,动态库,静态库)和对应的CMake版本
大纲1.编译 : 可执行程序 exampleCMake版本 : 可执行程序2.生成动态库 : libabc.soCMake版本 : libabc.so3.生成静态库 : libabc.aCMake版本 : libabc.a虽然我已经从Makefile转为CMake了,但Makefile的也不能完全放弃.下面会给出编译可执行文件,动态库和静态库的3种写法的2个版本.1.编译 : 可执行程序 example#MakefileCC = gcc# 嵌入式的话使用下面这样的写法# CC = /
2021-11-22 15:11:40
1362
原创 interfaces 的用途:开机启用eth0并设置IP为static或者dhcp
需求:开机使能eth0,并设置IP为固定值.做法:修改/etc/network/interfaces在文件只有2行的下面,增加了如下的内容:# interface file auto-generated by buildrootauto loiface lo inet loopback// 上面是默认的内容,下面是新增的内容,上下之间需要一个空行隔开// 接口顶格写,属性的前面有一个tab的缩进# The primary network interfaceauto eth0ifac
2021-11-13 18:40:49
5977
原创 全志T507平台增加V4L2 sensor直接操作I2C的API
大纲参考目标背景:这样做的目的是什么?怎么做?1 研究一下V4L2的sub device的初始化2 具体到我使用的sensor mlx75027,具体的初始化流程3.V4L2 cmd的类型4.不同类型命令的处理过程1. VIDIOC_XXX 的处理2. V4L2_CID_XXX 的处理3. 自定义cmd的处理参考我非常严重的参考了以下的文章,提前列出来:非常好的文章Linux V4L2 draftv4l2的学习建议和流程解析V4L2框架解析Linux V4L2 draftLinux V4L
2021-11-10 11:51:53
1981
原创 图像算法常用图片Lena
图像和图形学经常使用的几张比较经典的图片,其中有一张是一个美女头像,心血来潮就去查了一下这个人究竟是谁,为什么它的头像可以作为测试图像,一查才知道还是很有故事的,看来人不能总是满足于一知半解,不求真相的心态。参考了如下的资料Lena.jpg 与图像处理的渊源Lena在wikiLena还有自己的官方网站Lenna本人的全图是很sexy,工作时间谨慎点击Lena的图片黑白和彩色没有水印...
2021-10-26 20:22:06
6488
原创 iperf3 移植和信息汇总
iperl3移植嵌入式平台及使用iperf3工具测试带宽、上下行速率TCP 测试Ubuntu上安装出现如下问题的解决方法iperf3: error while loading shared libraries: libiperf.so.0: cannot open shaiperf3 安装遇到 error while loading shared libraries: libiperf.so.0这个问题是iperf3的一个已知问题,参考Installation #699ldconfig nee
2021-10-26 19:59:25
412
原创 SPI 信息汇总
Wiki Serial Peripheral InterfaceLinux内核自带SPI设备驱动测试程序分析:spidev_test.clinux spi驱动开发学习-----spidev.c和spi test appspidev_test.c 源码
2021-10-26 16:02:01
119
原创 I2C 信息汇总
cnblogs【linux】i2c使用分析&源码实战【Wiki】i2c【Wiki】I2C_Tools【Firefly-RK3288】i2ccsdn Linux I2C驱动框架(超详细)简书 i2c-tools的使用方法csdn i2c-tools移植cnblogs arm linux 移植 i2c-tools 与 简单使用【Wiki】i2c【Wiki】i2c【Wiki】i2c【Wiki】i2c...
2021-10-26 15:57:29
86
原创 iPerf 3.13 的交叉编译,移植,使用
1.从iPerf官网下载源码下载地址在 iPerf C++ source : 这个标签下面,我下载的是iPerf 3.1.3 8 jun 2016 537 KiB2.解压源码tar -xzf iperf-3.1.3-source.tar.gz -C .3.configure之后解压之后,iperf3.13目录里面先进行configure,在我的交叉编译环境里,指定host和CC使用的编译器就可以了,我会编译为Static,这样就不用在文件系统里面放调用的lib了. 网上有人编译为调用动态li
2021-10-19 12:05:14
2990
原创 Ubuntu 18.04 如何使用 xconfig 配置kernel
在我的Ubuntu 18.04 上图形化配置linux 4.19内核出现了如下的错误.运行了如下的命令之后解决.这里Mark一下.sudo apt-get install qttools5-dev
2021-10-08 10:33:13
593
原创 #pragma 用法 和 h文件总结
虽然我用VC用了有段时间,但好像对其中的#pragma预处理指令并不是很了解。这两天由于做WINCE的课程设计遇到太多太多的问题,其中就有关于#pragma的使用。下面我就引用一牛人对#pragma的评论做个小结,顺便也给自己加强记忆:在所有的预处理指令中,#Pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作。#pragma指令对每个编译器给出了一个方法,在保持与C和C++语言完全兼容的情况下,给出主机或操作系统专有的特征。依据定义,编译指示是机器或操作系统专
2021-08-31 10:49:29
611
原创 ARM NEON - RGB转灰度的实现 (DSP Factory学习总结)
DSP Factory是B站up主的一个开源工程,不是我,我只是从这个工程中学到了NEON的知识,这里做一下总结。对我有用的地方有2个,一个是memcpy,另一个是RGB转Gray的NEON实现。配套有2个视频,第一个14分钟讲了数据格式和介DSP Factory工程本身。https://www.bilibili.com/video/BV1dq4y157NA第二个45分钟的视频讲解了DSP Factory里面函数的使用方法。https://www.bilibili.com/video/BV1V64y
2021-08-31 09:58:36
493
原创 2020.1 u-boot C-SKY T910 启动分析
2020.1 u-boot C-SKY T910 启动分析说在前面:我参考了yanggx0929的博客,链接在下面。有些对不上的内容就只能自己看了。他的u-boot的版本是2015.1,我现在看的是2020.1他分了十几篇,我只准备整理总结对我有用的部分。链接: yanggx0929的博客先定位一下是哪个start.S通过xconfig来看下具体配置的是什么(make ARCH=riscv CROSS_COMPILE=~/host/bin/riscv64-unknown-linux-gnu-
2021-04-15 15:46:22
265
原创 快速找到 Linux Kernel 中各种函数原型的方法
最近一直在研究Linux的kernel代码,有时候遇到需要查看具体struct定义的时候,但是使用VS Code的时候,每次在查询里面输入的时候,都会看到K级别的结果,非常不好定位,比如下面这样的情况看到这个结果我也很绝望,当然我知道可以使用 CTRL + 左键 来做定位,但是在工程含有整个内核代码的时候,也是非常缓慢的。那么有什么更好的方法吗?我突然想到了内核里面的变量定义一般的格式是struct xxx {...}而不是如下的形式struct xxx{...}那么就可以直接
2021-01-28 19:29:51
1492
原创 OpenSBI 中 misa_xlen() 返回 -1 是什么意思
OpenSBI 中 misa_xlen() 返回 -1 是什么意思在平头哥的C910平台进行OpenSBI调试的时候,发现misa_xlen()这个函数返回值是-1?为何会如此呢,按照理解,这个函数要么返回32,要么返回64,返回-1标识出一种异常,那究竟是什么意思呢?下面通过源码进行问题的定位和解释。首先明确一下,这个函数在哪里:lib -> risc_main_asm.c -> misa_xlen()从源码入手。int misa_xlen(void){ long r; i
2021-01-26 17:39:32
728
2
Windows Sockets 2 编程手册 11/26/2021 Page 1798
2023-04-07
VC插件全集(2010.12.2更新,含VC助手10.6.1837-PJ)
2010-12-02
调试AMR的好工具(AMR文件的头)
2010-10-26
宾夕法尼亚大学-数据通信和计算机网络(PPT)(全14节)
2010-10-21
Serial Programming HOWTO 中英文对照版
2010-10-20
POSIX man 手册(2008-7-17) (2010-10-20能找到的最新了) 2003-a
2010-10-20
linux man 手册(2010-10-4更新) 3.28
2010-10-20
SlickEdit 2010 (15.0.1)破解文件
2010-10-14
UNIX环境高级编程(无错版,重压缩仅8M)
2009-04-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人