![](https://img-blog.csdnimg.cn/20190918140037908.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
嵌入式linux
嵌入式相关知识
迷茫的蜉蝣
音视频技术探索者,每周一篇音视频技术博客
展开
-
arm启动显示(none)
向arm板传文件之后(包括rcS),启动开发板发现登陆时显示(none) login,登陆之后显示:[root@(none)],查了好多才找到可能是因为挂载问题,所以我就去检查rcS文件,里面不知道为什么没有内容,可能传的时候发生的什么错误吧。把rcS的内容写好,保存,重启系统就正常了。解决。 我觉得关于none的很可能是挂载问题,自己以为的,不一定对。原创 2017-11-08 15:49:42 · 794 阅读 · 2 评论 -
交叉编译错误make: arm-none-linux-gnueabi-gcc:命令未找到 /bin/sh: 1: arm-none-linux-gnueabi-gcc: not found问题解决
我前段时间遇到的交叉编译连出错问题困扰了好久 已经解决了 和大家分享下:希望能帮到你们,当时我编译linux内核 make,busybox make install时总是出现的一个问题如下:我的环境变量已经配了,也重启了profile文件:source /etc/profile arm-none-linux-gnueabi-gcc -v 显示也已经安装了,当时到处查资料查到的几乎都是这原创 2017-11-03 13:22:15 · 18630 阅读 · 8 评论 -
linux硬件时钟的设置
linux时钟分为硬件时钟(RTC)和系统时钟,系统时钟是指linux kernel里的时钟,而硬件时钟则是主板上有电池供电的时钟,linux启动后硬件时钟就回去读取系统时钟的设置,然后系统时钟就可以独立于硬件运行。为了保证开发板断电重启后能够准确的读出时间,有必要设置硬件时钟,开发板安装上电池以后就可以硬件设置时钟了,这样有电池供电系统掉电再重启时间还是准确的。具体设置步骤如下:首先设置原创 2017-11-09 17:55:29 · 3437 阅读 · 0 评论 -
88e1111 phy芯片在arm平台的配置及接口介绍
88e1111芯片的硬件配置:引脚到常量的映射:pin bit(2:0) VDDO 111 LED_LINK10 110 LED_LINK100 101 lED_LINK1000 100 LED_DUPLEX 011 LED_RX 010 LED_TX 001 VSS 000 88e1111有7个配置引脚:CONFIG[6:0]配置引脚的常量映射:pin bit[2] bit[1] .原创 2020-10-13 15:44:11 · 8453 阅读 · 2 评论 -
linux 定时任务crond服务具体实现过程(arm平台)
最近做Linux定时的项目(在arm平台进行的),使用到crond服务来定时执行程序,之前对crond一无所知,经过参考好多大神的博客做出来了,特别记录一下方便以后用到时作为参考。 好多大神的博客对crond服务讲解的好细,但是很少有具体的实现过程,因为我的crontab -e不能编写,所以网上的做法对我不可行,我记录下我写的具体过程,有错的,不足的欢迎大家留言讨论。 1. 创...原创 2018-04-02 17:51:25 · 997 阅读 · 0 评论 -
虚拟机错误,VMware Workstation cannot connect to the virtual machine.不一样的解决方法
今天运行虚拟机出现了以下错误:VMware Workstation cannot connect to the virtual machine. Make sure you have rights to run the program, access all directories the program uses, and access all directories for temporary files.查了下百度,我的天,真的 是天下文章一大抄,清一色都是打开“管理”->"服务",原创 2021-02-18 20:55:09 · 346 阅读 · 0 评论 -
cpu配置fpga步骤
首先获取fpga时序:然后设置PROG INIT DONE引脚gpio方向,分别为引脚 方向 配置过程PROG:输出, 按照流程图配置引脚电平(低高低 010)中间有个小延迟INIT:输入, PROG配置完成后while循环监视INIT是否为低,INIT为低时才能...原创 2021-07-02 10:28:02 · 403 阅读 · 0 评论 -
linux samba环境搭建
1. samba的安装:sudo apt-get install samba如果Ubuntu不能上网的话可以下载samba源码包:https://www.samba.org/samba/samba是开源的工具,没必要花钱去某些博主那下载。2.安装好之后配置修改配置文件:vim /etc/samba/smb.conf添加如下内容:[teddy] //你想要共享的目录名 path = /home/teddy...原创 2021-08-27 11:27:45 · 185 阅读 · 0 评论 -
linux nfs服务器搭建
在做嵌入式开发的时候,需要移植文件的话,很多都在使用rz sz通过串口进行传输,串口传输最大速率才1024B,传输大文件时就很慢,所以nfs服务器的搭建就很有必要。nfs服务器是atm开发板通过网口进行的网络传输,arm终端通过mount将Ubuntu的共享目录挂在到arm上。1. nfs安装sudoapt-getinstallnfs-kernel-serversudoapt-getinstall rpcbind安装完成后修改配置文件:vim /etc/exports (...原创 2021-08-27 11:49:44 · 244 阅读 · 0 评论 -
lrzsz串口传输工具的源码下载与移植
lrzsz源码下载地址:https://www.ohse.de/uwe/software/lrzsz.html交叉编译:1、生成arm-linux.cache文件./configure --cache-file=arm-linux.cache2、修改arm-linux.cachevim arm-linux.cache修改如下两行:ac_cv_prog_CC=${ac_cv_prog_CC='arm-xilinx-linux-gnueabi-gcc'}...转载 2021-08-27 11:01:34 · 563 阅读 · 0 评论 -
c语言实现线程池,新手秒懂
其实,无限循环的线程基本不会添加到线程池中,线程池就是为了缓解频繁创建,销毁线程占用大量资源而创建的,而无限循环的线程不存在频繁创建和销毁所以就不需要线程池;添加进线程池的线程线存放在队列中,如果有空闲的执行线程,会被取走执行;如果把无限循环的线程添加到线程池,会一直占用线程池的执行线程,导致这个执行线程不能处理其他任务造成资源浪费;2.如果要求并发性,异步性,那么就需要运用线程,但是为了效率,就需要使用线程池来管理这些线程;初始化线程池信息结构体,创建执行数量的线程用于执行队列中的任务;原创 2024-07-24 11:13:40 · 350 阅读 · 0 评论 -
linux命令提示符设置
当然以上都是属于临时的设置;关机后就不存在;可以将export命令 保存到~/bashrc或者/etc/profile或者/etc/bash.bashrc等启动脚本中;每次启动都会进行配置;原创 2024-06-13 13:34:52 · 434 阅读 · 0 评论 -
推荐一款很不错的vscode高亮插件
用过很多款高亮插件,总感觉大部分显示都很乱,但是其中有一款用起来很清晰明了,很喜欢!底色高亮让人感觉很清晰,一个好的高亮插件能让你快速了解程序的运行过程,让人舒畅!插件名字:select-highlight-cochineal-color。原创 2024-03-22 09:23:48 · 510 阅读 · 0 评论 -
linux 测试网络速率
ethtool是很强大的查询网卡(嵌入式称为phy芯片)配置的工具,几乎phy芯片芯片手册寄存器能配置的选项,ethtool都能查询到;phy芯片一般分为10base,100base,1000base;Speed: 1000Mb/s能说明网卡处于1000base模式,实际速率相差不多;就是当前网络的速率;这里的Speed: 1000Mb/s只能说明phy芯片最大速率能达到1000Mb/s;网络自适配是否打开,工作模式(全双工,半双工),速率等信息;phy芯片支持的端口,支持的链接模式;原创 2024-02-19 17:26:05 · 1152 阅读 · 2 评论 -
c语言实现内存池
所谓内存池,顾名思义和线程池的设计原理是一样的,为了减少频繁申请释放内存而带来的资源消耗,减少释放内存后产生的内存碎片。原创 2024-02-06 11:55:05 · 562 阅读 · 0 评论 -
linux互斥锁:递归锁,非递归锁用法详解
在实际的项目中经常涉及到共享资源,共享资源被多个线程访问会出现竞争现象;为了解决竞争和保护共享资源常用的机制之一就是互斥锁!互斥锁又分为递归锁和非递归锁,互斥锁默认是非递归锁,也是我们常用的上锁方式。那么什么是递归锁和非递归锁呢?原创 2024-02-04 15:20:45 · 437 阅读 · 0 评论 -
aiXcoder自动跳出
在使用vscode时突然提示:需登录aixcoder才可以继续使用;在设置里搜索自动更新:将Update:Mode项改为none即可继续使用,需要重启vscode。文件->首选项->设置;(最好在扩展里所有aixcoder,如果已经安装最好卸载掉)后面可能要收取费用,本着白嫖的宗旨思考:那么怎么恢复原来的版本呢?原创 2024-01-23 10:51:29 · 481 阅读 · 0 评论 -
linux信号处理机制
注意:SIGKILL和SIGSTOP这两个信号不在处理范围内,SIGKILL和SIGSTOP是两个特殊的信号,具有特殊的行为和权力。除了这种方式,还有一种操作信号集的方式更为精确,能够屏蔽,添加,删除,操作等某个信号。检查某个信号signum是否在信号集set中。将某个信号signum添加到信号集set。将某个信号signum从信号集中删除。set:用来存储信号集的值。set:用来存储信号集的值。signum:某个信号。signum:某个信号。signum:某个信号。成功:0,失败:-1。原创 2024-01-19 11:59:51 · 405 阅读 · 0 评论 -
vscode无法自动补全
扩展->c/c++->Intellisense,找到Intelli Sense Engine Fallback 或者直接在设置里搜Intelli Sense Engine Fallback,将该选项设置为enabled;c/c++插件功能非常强大,几乎能满足日常编码过程中常用的功能;前提:安装c/c++插件。完成后代码即可自动补全。原创 2024-01-13 16:29:23 · 1839 阅读 · 0 评论 -
linux tcpdump能抓到包但是应用程序不能收到包
tcpdump命令能抓到过来的数据包,可是应用程序的recvfrom等套接字接收函数无法接收数据包;原因可能是各种各样的;由于疏忽不用时没有关闭所有的套接字,导致套接字越来越多,系统和单个进程都是有文件描述符上限的;太多的文件描述符就会导致应用程序的recvfrom等套接字接收函数出现问题;在网络编程项目中会遇到各种各样的网络问题,原因往往是多种多样的,在网上不会找到一个满意的答案;由于我的项目中的另外一个进程:在使用某功能时会创建很多套接字(文件描述符);我的好像是五百多个文件描述符就出现这个问题。原创 2024-01-11 11:45:56 · 1213 阅读 · 1 评论 -
linux文件描述符管理
在实际的项目开发中,文件描述符是经常用到的并且在释放资源过程中也是很容易忽略的,使用之后不释放就会增加cpu负担,无异于内存泄漏;所以时刻掌握文件描述符的状态是非常重要的!下面介绍文件描述符的管理方法。这个命令会输出三个数字,分别表示已分配的文件描述符数量、已分配但尚未使用的文件描述符数量和系统可用的最大文件描述符数量。已分配的文件描述符数量就是当前正在被使用的文件描述符数量。0:文件描述符编号;/dev/pts/2:文件描述符对应的文件;该可以查看文件描述符资源是否释放干净。原创 2024-01-10 18:01:27 · 460 阅读 · 0 评论 -
VScode右键没有go to definition选项
3.3. 如果C_CPP:intelli Sense Engine的配置是disabled;则下拉选择default;3.2. 在搜索框中搜索intelli Sense Engine (需要先安装C/C++)1.2. win重装系统,重新安装vscode出现问题,没重装系统之前是没问题的;1.1. 项目代码在远程服务器上;3.1. 打开设置界面:文件。原创 2024-01-08 17:40:21 · 4091 阅读 · 1 评论 -
Valgrind交叉编译
将bin,libexec两个目录移植到板子上,假设路径是:/mmc_data/tools/valgrind;这可能时你之前使用了--host=armv7-linux或者其他编译器没有清理make生成的文件,执行make而导致的;由于我是在海思3531上运行的,没有找到合适的libc6-dbg,所以就没向大家展示正确用法;但是编译过程是正确的,说实话这个工具对于arm系统不太友好,不知道是不是只是海思芯片有这问题。这行是没事的,只是工具的打印信息;7-15行是错误的:需要安装libc6-dbg;原创 2024-01-03 18:09:33 · 985 阅读 · 0 评论 -
如何生成core文件进行项目调试?
由于项目前期的调试错误比较多,或者有某些隐藏危险:例如内存泄漏;偶尔才出现一次,如果没有捕捉错误的手段可能好不容易出现的机会就溜走了,所以生成core文件是必要的,发生段错误会生成相应的core文件,使用gdb可以查询错误原因和堆栈情况。原创 2023-12-14 14:00:45 · 502 阅读 · 0 评论 -
嵌入式linux常用的文件传输方式
只需要下载个tftp服务器:tftpd64/tftpd32,安装到windows,然后运行,设置好ip地址和文件存放路径即可在开发板上使用tftp命令连接该服务器;ssh使用一般是最多的,将ssh服务器程序一直到开发板上,然后可以使用xshell进行访问,以windows的方式传输,也可以在虚拟机使用scp传输。如果虚拟机运行了nfs服务器,在arm上运行mount命令将虚拟机的某个目录挂载到arm上,然后使用cp,mv等即可传输文件。执行rz,会有win弹窗,选择想要传输的文件即可。原创 2023-11-02 16:11:46 · 459 阅读 · 0 评论 -
负数的二进制表示
在计算机中都是以补码数据存储数据的,正数的反码,补码都是其本身,负数的反码,补码如上所属;到这就已经能初步解释上面的问题了,刚接触c语言的萌新可能对负数的二进制表示很蒙圈,-1不应该是10000001吗?由上面的例子可知:-1在计算机就是以11111111存储的,所以显示出来就是11111111;-1补码:11111111(这就是计算机上显示出来的-1的值)正数的反码是原码,负数的反码是除了符号位之外,其余位取反。正数的补码是原码,负数的补码是反码加一。带符号位的,其余位表示数值。原创 2023-04-18 17:50:45 · 773 阅读 · 0 评论 -
linux C ioctl设置,获取网关,路由信息
这个结构由SIOCADDRT和SIOCDELRT调用传递,白话就是这个结构就是在添加路由和删除路由的时候被调用。SIOCADDRT:添加路由,SIOCDELRT:删除路由,就是ioctl调用时使用的请求码。该代码获取了路由表的所有ip 子网掩码,网关(下一跳),并且将获取到的信息保存在RouteTable容器中,想要获取路由信息可以参考该代码。温馨提示:路由设置时ip不最后一个字节要为0才能设置成功,及ip:XXX.XXX.XXX.0。原创 2023-04-02 20:48:59 · 2809 阅读 · 0 评论 -
linux c ioctl接口实现本地IP,子网掩码的获取与设置
在日常开发中避免不了对本地网络的设置需求,一般情况下我们使用system接口进行临时的IP修改,或者open,rend write,操作/etc/network/interface这样的网络文件实现IP的永久修改,但是这样的修改方式相较来说比较低端。原创 2023-04-01 17:10:11 · 1670 阅读 · 1 评论 -
ubuntu/centos ping不通域名问题及解决方案
我有两个网段,一般情况下使用的是win使用的是1网段:192.168.1.XXX,但是我用的各种开发板是0网段,于是为了方便调试我把ubuntu设置为了0网段:192.168.0.XXX,虽然也能够ping通域名,但是ubuntu的火狐是上不了网的,所以在0网段下网络是有问题的。于是将虚拟机改为1网段,就可以ping通域名,并且ubuntu的火狐也能够打开网页。所以如果的你网络环境有多个网段,配置好上面的dns后你可以试一下其他网段,因为有的网段不能对外开放。原创 2023-03-26 16:10:24 · 1053 阅读 · 0 评论 -
虚拟机识别并使用串口
在嵌入式的开发中由于环境的不具备,避免不了使用虚拟机通过串口进行交互测试,而虚拟机应该怎样识别串口呢?识别之后就能直接使用了吗?原创 2023-03-25 16:55:38 · 4022 阅读 · 3 评论 -
json-c库的交叉编译(最新版,cmake版)
写好的程序调用了json-c库,但是由于json-c库是gcc编译出来的,调用libjson-c.so库的时候报错:./lib/libjson-c.so: file not recognized: 不可识别的文件格式于是想到json库需要交叉编译一下,具体交叉编译流程如下:我查的网上都是sh autogen.sh,./configure编译的json,但是我下在的json库没有这些文件,可能是最新的json有修改吧,我的流程如下:1.下载json-c库git clone https://原创 2021-09-28 15:25:18 · 2656 阅读 · 1 评论 -
交叉编译器arm-linux-gcc,aarch64-himix200-linux-gcc命令找不到 not found ,所有原因全方位解析
进行交叉编译时提示交叉编译器找不到所有原因及解决方案原创 2022-09-29 11:29:39 · 3690 阅读 · 0 评论 -
虚拟机和win主机不能互相ping通,不能ping通外网,全方位解析
linux虚拟机 ping 外网 不通原创 2022-07-08 16:09:12 · 4390 阅读 · 0 评论