嵌入式Linux
学习历程
我歌月徘徊、
单片机开发,嵌入式linux,物联网,java,c#,微信小程序,
展开
-
git在windows 中文乱码的问题
【代码】git在windows 中文乱码的问题。原创 2022-09-24 21:37:52 · 201 阅读 · 0 评论 -
error trying to exec ‘cc1‘: execvp: No such file or directory
cc1原创 2022-06-08 19:06:12 · 1388 阅读 · 1 评论 -
sudo make install 找不到交叉编译器
转http://blog.chinaunix.net/uid-29021161-id-5758419.htmlsudo make install。由于安装到系统目录/usr/local,所以加了sudo执行。就这步,出现了问题:…/libtool:line XXXX:arm-Linux-ranlib command not found在终端检查,发现arm-linux-ranlib可以在系统的PATH中找到,因为我已经把/usr/local/arm/4.3.2/bin添加到了PATH中。那为什么还提原创 2022-04-29 16:20:32 · 602 阅读 · 0 评论 -
SSH 证书登录教程
SSH 是服务器登录工具,有三种登录方式密码登录密钥登录证书登录 更合理、更安全证书部署http://www.ruanyifeng.com/blog/2020/07/ssh-certificate.html原创 2022-04-26 11:10:44 · 1831 阅读 · 0 评论 -
cmake获取git信息
cmake_minimum_required(VERSION 2.8)project(test)set(SRCS main.cpp)# 执行git命令,并把结果重定向到自定义变量(此处是我的变量<GIT_VERSION>)。execute_process( COMMAND git log -1 --format=%H //git 命令 WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} OUTPUT_VARIABLE GIT_VERSION)原创 2022-04-25 11:40:06 · 251 阅读 · 0 评论 -
交叉编译pcre
pcre-8.40中文含义:perl语言兼容正则表达式)是一个用C语言编写的正则表达式函数库,由菲利普.海泽(PhilipHazel)编写。PCRE是一个轻量级的函数库,比Boost之类的正则表达式库小得多。PCRE十分易用,同时功能也很强大,性能超过了POSIX正则表达式库和一些经典的正则表达式库…https://netix.dl.sourceforge.net/project/pcre/pcre/8.40/pcre-8.40.tar.gz./configure --prefix=$PWD/arm-原创 2022-04-25 11:39:29 · 1082 阅读 · 0 评论 -
交叉编译 libffi-3.4.2
libffi-3.4.2 http://www.sourceware.org/libffi/ ./configure --prefix=$PWD/arm-install --host=aarch64-linux-gnu make make install库路径/home/zys/tool/libffi-3.4.2/arm-install/lib原创 2022-04-25 11:38:54 · 1355 阅读 · 0 评论 -
编译binutils、zlib
0、sudo -i 很重要否则make install 出错export PATH=$PATH:/opt/GSRD/gcc-linaro-arm-linux-gnueabihf-4.7-2012.11-20121123_linux/bin/1、libffiCC=arm-linux-gnueabihf-gcc ./configure±-prefix=/opt/GSRD/glib-2.45.1/ffi-3.2.1/ --host=arm-linux-gnueabihfmake&make in原创 2022-04-25 11:37:25 · 597 阅读 · 0 评论 -
交叉编译 glib
解压后,在源码根目录下创建glib.cacheglib_cv_long_long_format=llglib_cv_stack_grows=noglib_cv_have_strlcpy=noglib_cv_have_qsort_r=yesglib_cv_va_val_copy=yesglib_cv_uscore=noglib_cv_rtldglobal_broken=noac_cv_func_posix_getpwuid_r=yesac_cv_func_posix_getgrgid_r=y原创 2022-04-25 11:23:16 · 866 阅读 · 0 评论 -
关于pkg-config
pkg-config提供了下面几个功能:检查库的版本号。如果所需要的库的版本不满足要求,它会打印出错误信息,避免链接错误版本的库文件。获得编译预处理参数,如宏定义,头文件的位置。获得链接参数,如库及依赖的其它库的位置,文件名及其它一些连接参数。自动加入所依赖的其它库的设置。这一切都自动的,库文件安装在哪里都没关系!为了让pkg-config可以得到这些信息,要求库的提供者,提供一个.pc文件。比如libffi-3.4.2的pc文件内容如下:zys@zys-virtual-machine:~原创 2022-04-24 08:52:57 · 587 阅读 · 0 评论 -
glib 和 glibc
相同点:都是GNU旗下的c库glib: Glib是GTK+调用的底层核心库.(GTK+由开发GIMP的一些工具包集合发展而来).GIMP和Gnome这样的图形界面程序都是基于GTK+的. 大家都知道C本身缺少数据结构,和一些重要的处理函数,C本身最复杂的数据结构也就是数组了.那么当你需要一个数据结构的话就自己得定义.幸好前人已经帮我们完成这个工作.他们把这写常用的数据结构和处理方法包装成一个库.其中之一就是Glib了. - 数组 - 链表 - hash表 - 队列 - 关系型数据库 - 字原创 2022-04-22 16:08:13 · 219 阅读 · 0 评论 -
uClibc 和 Glibc 不一样
https://www.uclibc.org/downloads/Glibc_vs_uClibc_Differences.txtuClibc 和 Glibc 不一样——有许多不同之处可能会也可能不会给您带来问题。本文档试图列出这些差异,完成后,将包含所有相关的完整列表差异。1) uClibc 比 glibc 小。我们试图保持与 glibc 兼容接口,允许使用 glibc 编译的应用程序轻松编译uClibc。但是,我们不包含 glibc 包含的_所有内容_,并且因此某些应用程序可能无法编译原创 2022-04-22 14:22:51 · 967 阅读 · 0 评论 -
lcm-1.4.0 编译
mkdir lcm-installcd build/cmake -DCMAKE_INSTALL_PREFIX=/home/zhangyasheng/tool/lcm-1.4.0/lcm-install ..make make install交叉编译export PATH=$PATH:/work/tools/linux-i386/aarch64-linux-gnu/bincmake -DCMAKE_C_COMPILER=aarch64-linux-gnu-gcc -DCMAKE_INSTAL原创 2022-03-21 17:56:21 · 58 阅读 · 0 评论 -
git push报错 Missing or invalid credentials
zys@zys-virtual-machine:~/work/cpp$ git push origin master Missing or invalid credentials.Error: connect ECONNREFUSED /run/user/1000/vscode-git-ec011034bf.sock at PipeConnectWrap.afterConnect [as oncomplete] (net.js:1146:16) { errno: -111, code:原创 2022-04-15 09:51:53 · 11054 阅读 · 5 评论 -
git取消跟踪目录
-r 表示递归-n 表示先不删除,只是列出文件1.首先 git rm -r -n --cached 文件只是为了列出你需要取消跟踪的文件,可以查看列表,检查下是否有误操作导致一些不应该被取消的文件取消了,是为了再次确认的。2. git rm -r --cached 文件才是真正的取消缓存不想要跟踪的文件3.在本地仓库的根目录下新建.gitignore 文件。 vi .gitignore添加你希望忽略的文件/目录4.git commit提交后,在2步中希望忽略的文件和目录,就不会再5.g原创 2022-04-14 11:27:58 · 733 阅读 · 0 评论 -
虚拟空间--物理空间 分段
原创 2022-04-09 19:35:18 · 259 阅读 · 0 评论 -
虚拟页 物理页 磁盘页
原创 2022-04-09 19:30:30 · 298 阅读 · 0 评论 -
fork--写时复制
原创 2022-04-09 19:27:48 · 307 阅读 · 0 评论 -
UDP组播
组播,也称为多播,是 UDP 的特性之一。组播是主机间一对多的通讯模式,是一种允许一个或多个组播源发送同一报文到多个接收者的技术。组播源将一份报文发送到特定的组播地址,组播地址不同于单播地址,它并不属于特定某个主机,而是属于一组主机。一个组播地址表示一个群组,需要接收组播报文的接收者都加入这个群组。广播只能在局域网访问内使用,组播既可以在局域网中使用,也可以用于广域网在发送广播消息的时候,连接到局域网的客户端不管想不想都会接收到广播数据,组播可以控制发送端的消息能够被哪些接收端接收,更灵活和人性化。原创 2022-03-29 20:28:06 · 6368 阅读 · 0 评论 -
opencv 3.4.1编译问题
下载 https://opencv.org/releases/page/5/cd buildcmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/home/zys/work/tool/opencv/opencv-3.4.1/install-x86 ..makemake installopencv-3.4.1/samples/cpp/example_cmake编译报错找不到库查看MakefileCXXFLAGS += -c -原创 2022-03-28 10:11:52 · 4167 阅读 · 0 评论 -
C++ std::function详解与实战
参考定义一个std::function<int(int)>对象实例std::function<int(int)> callback;std::function对象实例包装函数指针int (*fun_ptr)(int);int fun1(int a){ return a;}int main(int argc, char *argv[]){ std::cout << "Hello world" << std::endl;原创 2022-03-25 10:32:45 · 1329 阅读 · 0 评论 -
wireshark分析udp分片
wireshark默认会组装分片的包,所以抓不到。需要进行设置编辑-》首选项-》protocols,取消组装帧结构分片第一包第二包原创 2022-03-23 14:53:15 · 4696 阅读 · 0 评论 -
tcpdump数据解析
IP数据包格式UDP包格式首部长度:占 4 位,可表示的最大十进制数值是15.请注意,这个字段所表示数的单位是32位字 (1个32位字长是4 字节),因此,当 IP 的首部长度为 1111 时 (即十进制的 15),首部长度就达到 60字节.当 IP 分组的首部长度不是4字节的整数倍时,必须利用最后的填充字段加以填充.因此数据部分永远在 4字节的整数倍开始,这样在实现 IP协议时较为方便.首部长度限制为 60字节的缺点是有时可能不够用.这样做的目的是希望用户尽量减少开销.最常用的首部长度就是 2原创 2022-03-22 17:48:31 · 4116 阅读 · 0 评论 -
linux文件分割
以空格或者tab分割 (列从$1开始) 取出第一列awk '{print $1}' player.txt > channl.txt去掉重复行sort -n channl.txt | uniq > uch.txt原创 2022-03-12 11:31:12 · 880 阅读 · 0 评论 -
Anaconda3+win10
链接原创 2022-03-10 10:18:43 · 2260 阅读 · 0 评论 -
vm虚拟机nat模式配置
痛点:为了解决虚拟机与板子网络的调试的问题,我之前一直用桥接,如果虚拟机想上网就桥接到无线网卡,如果想连接板子,就桥接到有线网卡,麻烦,需要来回切换,还有就是不插板子的情况下和没有无线网的情况下,本地无法ssh连接虚拟机(桥接模式失效,因为没有连接对应的网卡就不存在)。桥接使用VMnet0解决:net模式,虚拟机相当于当前主机的一个子网,可以与主机ip网段不一样,这样就很灵活了。net模式使用网卡VMnet8在这种模式下,宿主机有两块网卡,一块是真实的物理网卡(即NAT device),连接Ne原创 2022-03-09 10:14:35 · 3772 阅读 · 0 评论 -
重复执行shell直到成功
repeat() { while :; do $@ && return; sleep 30; done }repeat wget -c http://www.example.com/software-0.1.tar.gz原创 2022-01-21 16:14:02 · 739 阅读 · 0 评论 -
arm架构
原创 2022-01-21 09:40:23 · 1726 阅读 · 0 评论 -
让word文档中的代码更美观
直接拷贝到word即可word代码格式化原创 2022-01-20 10:27:03 · 703 阅读 · 0 评论 -
进程返回值
获取进程返回值echo $?perror $?进程返回值对照表"OS error code 1: Operation not permitted""OS error code 2: No such file or directory""OS error code 3: No such process""OS error code 4: Interrupted system call""OS error code 5: Input/output error""原创 2022-01-07 09:42:20 · 272 阅读 · 0 评论 -
关于信号SIGPIPE
tcp通信时,server端莫名退出原因是收到了SIGPIPE信号,默认处理的结束进程;对一个对端已经关闭的socket调用两次write, 第二次将会生成SIGPIPE信号。解决:忽略pipe信号signal(SIGPIPE, SIG_IGN)原创 2021-12-02 15:21:22 · 123 阅读 · 0 评论 -
vscode 过程试图写入的管道不存在
开发环境:在windows下使用vscode,ssh远程开发。解决问题:删除远程链接记录,重新连接即可此文件目录为原创 2021-11-16 15:35:32 · 1329 阅读 · 0 评论 -
f1c100s 调试问题汇总
编译内核编译报错$ sudo apt-get install libssl-dev分区开始分区sudo mkfs.vfat /dev/sdd4 -Isudo fdisk -l 查看存储设备查看分区删除分区创建1分区 32m创建2分区保存分区确定一下分区输入q 离开生成boot.scr拷贝到第一分区...原创 2021-11-02 13:01:28 · 1662 阅读 · 0 评论 -
f1c100s spi flash分区
spi flash分区u-boot-sunxi-with-spl.bin – 1Msuniv-f1c100s-licheepi-nano.dtb – 64KzImage – 4Mrootfs – 剩余dd if=/dev/zero of=f1c100s_spiflash_16M.bin bs=1M count=16 &&\dd if=/home/book/lichee/u-boot/u-boot-sunxi-with-spl.bin of=f1c100s_spiflash_1原创 2021-11-02 13:01:17 · 637 阅读 · 0 评论 -
f1c100s 内存卡分区
准备工作分区表第一分区格式:fat32(fat16也可以 没有尝试),bootcmd中mmc 0:1第二分区格式:ext4, bootargs中root=/dev/mmcblk0p2注意:uboot并不在第一分区中,uboot需要写入到sd卡的8k偏移处sudo dd if=u-boot-sunxi-with-spl.bin of=/dev/sdb bs=1024 seek=8开始分区sudo mkfs.vfat /dev/sdd4 -Isudo fdisk -l 查看存储设备原创 2021-11-02 13:01:02 · 556 阅读 · 0 评论 -
f1c100s rootfs调试记录
下载wget https://buildroot.org/downloads/buildroot-2021.08.tar.gz编译配置target options:第一个选项为架构选择,这里选择ARM架构小端模式,第二个为输出的二进制文件格式,这里选择EFL格式,第三个为架构体系,这里选择arm926t,因为F1C200S/F1C100S的架构就是这个架构,第四个为矢量浮点处理器,这里不勾选,因为对于F1C200S/F1C100S而言,其内部没有浮点运算单元,只能进行软浮点运算,也就是原创 2021-11-02 13:00:46 · 555 阅读 · 0 评论 -
f1c100s kernel调试记录
spi flash修改设备树arch/arm/boot/dts/suniv-f1c100s-licheepi-nano.dts将原来的&spi0{…}替换为: &spi0 { pinctrl-names = "default"; pinctrl-0 = <&spi0_pins_a>; status = "okay"; spi-max-frequency = <50000000>; flash: w2原创 2021-11-02 13:00:35 · 431 阅读 · 0 评论 -
f1c100s uboot调试记录
u-bootspi flash启动make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- licheepi_nano_spiflash_defconfigmake ARCH=arm menuconfigmake ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j4得到u-boot-sunxi-with-spl.bin文件修改源码在uboot源码目录下 进入 ./include/configs/,修改 suniv.原创 2021-11-02 13:00:23 · 878 阅读 · 0 评论 -
arm 架构体系
ARMv1就是第一代ARM11之后处理器和指令集架构ARM11芯片之后,也就是从ARMv7架构开始,ARM的命名方式有所改变。新的处理器家族,改以Cortex命名,并分为三个系列,分别是Cortex-A,Cortex-R,Cortex-M。很巧合,又是这三个字母A、R、M。参考 百度百科https://baike.baidu.com/item/arm/75182998-系列产品...原创 2021-11-02 12:59:38 · 1011 阅读 · 0 评论 -
dd命令的conv=swab属性
dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。注意:指定数字的地方若以下列字符结尾,则乘以相应的数字:b=512;c=1;k=1024;w=2参数注释:if=文件名:输入文件名,缺省为标准输入。即指定源文件。< if=input file >of=文件名:输出文件名,缺省为标准输出。即指定目的文件。< of=output file >ibs=bytes:一次读入bytes个字节,即指定一个块大小为bytes个字节。obs=bytes:一次输出bytes.原创 2021-05-29 22:03:02 · 375 阅读 · 0 评论