
linux编程
文章平均质量分 70
Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 UNIX 的多用户、多任务、支持多线程和多 CPU 的操作系统。
Linux 能运行主要的 UNIX 工具软件、应用程序和网络协议。它支持 32 位和 64 位硬件。
mayue_csdn
这个作者很懒,什么都没留下…
展开
-
嵌入式设备时间同步(gpsd pps chrony 校时)
设备时间同步原创 2023-10-13 13:35:53 · 6571 阅读 · 1 评论 -
Linux可执行文件格式介绍和设备GDB调试
1.Linux 可执行文件/ELF文件格式介绍。2.Linux 内存地址分布。原创 2023-05-05 16:29:57 · 291 阅读 · 1 评论 -
嵌入式系统相关 ChartGPT问答
OpenEmbedded:OpenEmbedded是一个开源的嵌入式Linux发行版制作工具,它与Yocto Project类似,使用BitBake构建系统,可以定制内核、文件系统、应用程序等等,同时具有更高的灵活性和可定制性。BusyBox:BusyBox是一个轻量级的工具集,它包含了许多用于嵌入式系统的常用工具和应用程序,如ls、cp、mv、rm、mkdir、cat、echo等等。总之,设备树是一种用于描述硬件设备及其属性的数据结构,而设备节点则是设备树中的一个节点,描述了一个具体的硬件设备及其属性。原创 2023-05-05 16:05:20 · 1356 阅读 · 0 评论 -
IMX6Q的SD卡启动使用教程
经过上述5个步骤,即可实现uboot引导linux,加载文件系统的工作。整个流程是一个linux嵌入式工程师必备技能,其中会遇到很多问题,需要自己一一解决并总结。幸运的是大部分问题网上都能找到解决方案,重要的是坚持!后续会补充文中没有详细展开的内容,包括根文件系统制作、NFS\TFPT启动等。还准备手把手教如何在IMX6Q上移植ubuntu20根文件系统并安装桌面,制作属于自己的嵌入式开发板环境。转载 2023-04-25 14:37:27 · 1461 阅读 · 0 评论 -
Linux 查看进程和线程CPU和内存占用情况
(1)ps -p {pid} -T 可以得到该进程里面运行的各线程的id(表现出来是spid)、对应的线程名称(不超过16字符)、运行时间等;你可以把这个目录下的信息理解为Linux内核在执行你写的程序时所打印的Log。下,因此你可以通过查看这个目录下的信息来或者进程的运行时行为,这对于那些好奇内核是如何运行程序的同学是非常重要的。下记录了每个进程运行时的所有关键信息,那这些信息是谁来生成的呢,答案是Linux内核。Linux内核在执行你写的程序时,将所有关键信息写到了。原创 2023-04-25 14:34:11 · 7738 阅读 · 0 评论 -
各大半导体原厂芯片代码仓库(GitHub)
从事嵌入式开发,经常与底层芯片打交道,在使用一个新的芯片时,一般原厂都会提供相关驱动(driver)、中间件(HAL)以及演示例程(demo),也方便我们快速使用该芯片,提高产品开发效率。收集了常用到的几个半导体原厂芯片代码仓库(GitHub),相关芯片代码可以从从中找到,但不是所有芯片都会提供。【6】微芯半导体(Microchip )【10】海思半导体(Hisilicon)【11】英飞凌半导体(Infineon)【9】赛普拉斯半导体(Cypress)【2】恩智浦半导体(NXP)【1】意法半导体(ST)转载 2023-04-25 10:10:13 · 748 阅读 · 0 评论 -
Linux 报 bus error
文章目录C 总线错误 (bus error) - 段错误 (segmentation fault)总线错误(Bus error)原创 2023-04-24 16:04:33 · 1690 阅读 · 0 评论 -
shell 内部命令和外部命令
Shell 教程Shell 是一个应用程序,它连接了用户和 Linux 内核,让用户能够更加高效、安全、低成本地使用 Linux 内核,这就是 Shell 的本质。Shell 本身并不是内核的一部分,它只是站在内核的基础上编写的一个应用程序,它和 QQ、迅雷、Firefox 等其它软件没有什么区别。然而 Shell 也有着它的特殊性,就是开机立马启动,并呈现在用户面前;用户通过 Shell 来使用 Linux,不启动 Shell 的话,用户就没办法使用 Linux。转载 2023-04-20 17:24:29 · 1176 阅读 · 0 评论 -
Linux mv根下目录/lib目录的恢复
首先这里并不是删除了/lib,而是人为修改成了/libbk。在交叉编译完busybox后,想测试下新版本的busybox命令。由于当前系统已完备,于是通过SCP将新的busybox打包拷贝到设备中。解压后验证可用,但实际上busybox是动态编译,依赖动态库。于是通过重命名了。于是就出现ls、cp等命令无法使用问题。Linux 动态库查找路径。原创 2023-04-19 16:23:00 · 1264 阅读 · 0 评论 -
Linux 设置开机自启动
设置Linux自启动转载 2023-04-17 16:30:42 · 17943 阅读 · 0 评论 -
arm backtrace 使用
backtrace使用转载 2023-04-17 11:38:42 · 904 阅读 · 0 评论 -
Linux 查看程序内存占用情况 top和free等命令
想必在linux上写过程序的同学都有分析进程占用多少内存的经历,或者被问到这样的问题——你的程序在运行时占用了多少内存(物理内存)?通常我们可以通过top命令查看进程占用了多少内存。这里我们可以看到VIRT、RES和SHR三个重要的指标,他们分别代表什么意思呢?这是本文需要跟大家一起探讨的问题。当然如果更加深入一点,你可能会问进程所占用的那些物理内存都用在了哪些地方?转载 2023-04-14 08:58:56 · 6623 阅读 · 0 评论 -
Linux 内存地址分布
malloc的分配内存有两个系统调用,一个brk,一个mmap,brk是将.data的最高地址指针_edata往高地址走,mmap则是在进程的虚拟地址空间(在堆和栈之间的内存映射区域)找一块空间。) 所以我们常说的多少位系统,他的内存多大,都是说的虚拟内存空间。C.非初始化数据段。接下来所说的是嵌入式系统的内存地址空间的布局,简单的说就是我们写好的代码,在编译过程种中,把代码里不同的变量、函数相应的保存在每个段中(.text、.data、.bss),至于堆空间、栈空间是代码在芯片上运行时才存在的。转载 2023-04-13 17:29:27 · 1353 阅读 · 0 评论 -
区分/dev/tty、/dev/console、/dev/pts、/dev/ttyn
分别是/ dev/ttyN(其中 tty0就是/ dev / console,tty1 ,tty2就是不同的虚拟终端(virtual console)).通常使用热键alt+Fn来在这些虚拟终端之间进行切换。本人在进行rootfs创建的时候,遇到了设备/dev/pts,因为rootfs最后需要能通过telnet来登录。所有写向这个设备的输出都将被丢弃,而如果你读/dev/null,则会立即得到一个文件尾标志而返回。指的是当前所处的终端 ,输出到此的内容只会显示在当前工作的终端显示器上。转载 2023-04-01 14:58:36 · 1395 阅读 · 0 评论 -
进程管理工具
进程管理工具原创 2023-02-15 15:04:14 · 159 阅读 · 0 评论 -
Linux ELF文件格式介绍
可执行链接格式(Executable and Linking Format)最初是由 UNIX 系统实验室(UNIX System Laboratories,USL)开发并发布的,作为应用程序二进制接口(Application Binary Interface,ABI)的一部分。工具接口标准(Tool Interface Standards,TIS)委员会将还在发展的 ELF 标准选作为一种可移植的目标文件格式。Linux下面一共有四类目标文件是按照ELF的格式来保存的,如下:由此我们可知由汇编器。转载 2023-02-08 19:15:37 · 648 阅读 · 0 评论 -
C++编译知识笔记(二)——Linux ELF文件解析
Linux下面的可执行文件格式是ELF,是COFF(Common Object File Format,早期的类UNIX系统使用)格式的变种,虽然名字就是可执行文件格式,但不光是可执行文件是这个格式,目标文件也是按这种文件类型来保存的,不光如此,Linux下面一共有四类文件是按照ELF的格式来保存的,如下:对于一个熟练的linux平台的c/c++开发人员,这些文件类型应该都不陌生。另外,前面提到过,.a的静态链接库可以理解为.o的打包,因此本质上也属于ELF类型。转载 2023-02-08 17:06:39 · 837 阅读 · 0 评论 -
Linux 查看路由表
在计算机网络中,路由表(routing table)或称路由择域信息库(RIB, Routing Information Base),是一个存储在路由器或者联网计算机中的电子表格(文件)或类数据库。路由表存储着指向特定网络地址的路径(在有些情况下,还记录有路径的路由度量值)。路由表中含有网络周边的拓扑信息。路由表建立的主要目标是为了实现路由协议和静态路由选择。转载 2023-02-08 15:54:30 · 12555 阅读 · 0 评论 -
ELF文件-逆向工具
ELF文件逆向工具转载 2023-02-03 11:42:24 · 1682 阅读 · 0 评论 -
ELF文件格式
ELF文件格式转载 2023-02-03 11:34:41 · 365 阅读 · 0 评论 -
Google Address Sanitizer 学习
AddressSanitizer(ASan)是google开发的一个应用内存检查工具,性能据说比valgrind要好不少,可以配合clang或者GCC编译器使用,GCC需要4.8及以上版本。4.8版本GCC对AddressSanitizer支持有限,功能不太完善,输出的错误信息也不够友好,使用不太方便,建议使用4.9及以上版本。C/C++ 内存治理神器 - Google SanitizersAddressSanitizer(又名ASan)是C/C++的内存错误检测器。转载 2023-01-06 17:10:34 · 1425 阅读 · 0 评论 -
GNU Binutils 工具集介绍
GNU Binutils 介绍Binutils官网地址GNU Binutils 是一组二进制工具集,即GNU Binary Utilities,是一套用于创建、管理和维护二进制目标文件的工具集合,包括addr2line、ar、gprof、nm、objcopy、objdump、ranlib、size、strings、strip。注意,这里千万不要理解错了,不是说这些 Binutils 工具只提供二进制文件,而是说这些工具的目的是用于操作二进制文件的,而不是针对于文本或者源代码。转载 2022-12-17 22:47:45 · 1392 阅读 · 0 评论 -
系统日志函数syslog和syslog配置
syslog系统日志函数原创 2022-11-29 19:29:43 · 435 阅读 · 0 评论 -
linux下获取本机IPv6地址、前缀、网关
获取本机IPv6网关命令:ip -6 route show dev eth0。获取本机IPv6信息命令:cat /proc/net/if_inet6。转载 2022-11-18 11:14:19 · 8466 阅读 · 0 评论 -
Linux can配参
问题原因:波特率和采样率不一致导致,物理连接后若can参数与总线参数不同就会报错。这里应用程序默认是不修改和启动can0的。采样率一般80%,波特率这里是250K,查看系统网卡配参,can0启动时设置的波特率是500000。can0启动时默认参数(网卡配置文件:/etc/network/interfaces)查看 can0 的比特率配置等,以及统计数据(接收/发送/出错帧等)项目问题:设备CAN甩线接到车上,车就会挂/报错。应用代码是这样设置can参数的。Linux文本内容替换。查看 can0 的配置。原创 2022-10-29 20:47:20 · 4645 阅读 · 1 评论 -
apt-get install 的默认安装路径
apt-get install 安装路径转载 2022-06-08 14:30:13 · 5134 阅读 · 1 评论 -
Linux学习教程,Linux入门教程
文章目录原点地址:http://c.biancheng.net/linux_tutorial/text_processing/转载 2022-05-29 12:58:38 · 373 阅读 · 0 评论 -
Linux下查看CPU型号,内存大小,硬盘空间的命令
文章目录1 查看CPU2 查看内存3 查看硬盘参考资料问题:编译服务器、SVN代码服务器,服务器购买、环境搭建?1 查看CPU1.1 查看CPU个数cat /proc/cpuinfo | grep "physical id" | uniq | wc -luniq命令:删除重复行;wc –l命令:统计行数1.2 查看CPU核数cat /proc/cpuinfo | grep "cpu cores" | uniq#输出:cpu cores : 81.3 查看CPU型号cat /转载 2022-05-13 17:55:13 · 20351 阅读 · 0 评论 -
linux查看虚拟内存和性能检测常用的命令
Linux查看物理内存和虚拟内存、以及性能检测常有命令转载 2022-05-13 09:47:32 · 9181 阅读 · 0 评论 -
Linux虚拟内存空间分布
https://blog.youkuaiyun.com/qq_18144747/article/details/88089870转载 2022-05-11 16:05:59 · 1627 阅读 · 0 评论 -
Linux操作系统里一个进程最多可以创建多少个线程?
Linux操作系统一个进程可以创建多少个线程转载 2022-05-11 11:22:53 · 4550 阅读 · 0 评论 -
进程间通信机制-Unix域套接字
进程间通讯方式,Unix域套接字转载 2022-04-26 14:16:00 · 217 阅读 · 0 评论 -
pthread_create创建线程后是否需要释放资源
pthread_join(); //使用有两个条件:①线程非阻塞–??。②有IO相关接口调用。recv、send啥的原创 2021-11-08 10:03:24 · 2750 阅读 · 0 评论 -
shell拷贝和替换脚本
copyFile.sh###说明#拷贝文件到指定目录下(多目录)#$1原文件名称#$2原文件路径#$3子目录匹配字符串###版本V1.0.0paramNum=3paramInNum=$#if [[ $paramNum != $paramInNum ]]; then echo "命令必须符合如下格式:./copyFile.sh filename srcdir dstdir" #直接输出字符串 exit 1fifileName=$1fileSrc=$2dstdir=$3原创 2021-07-27 09:19:53 · 2330 阅读 · 0 评论 -
Linux的nm查看动态和静态库中的符号
文章目录功能帮助使用举例参考功能列出.o .a .so中的符号信息,包括诸如符号的值,符号类型及符号名称等。所谓符号,通常指定义出的函数,全局变量等等。帮助nm -h$ nm -hUsage: nm [option(s)] [file(s)] List symbols in [file(s)] (a.out by default). The options are: -a, --debug-syms Display debugger-only symbols -A, -转载 2021-04-21 09:40:42 · 4912 阅读 · 0 评论 -
linux SIGSEGV信号
文章目录关于SIGSEGV错误及处理方法https://blog.youkuaiyun.com/brace/article/details/1102422关于SIGSEGV错误及处理方法今天编程遇到了SIGSEGV错误(段错误),比较困惑,所以找了些资料,总结一下:(1)官方说法是: SIGSEGV --- Segment Fault. The possible cases of your encountering this error are: 1.buffer overflow --- usually转载 2021-04-20 21:27:48 · 2799 阅读 · 0 评论 -
linux signal信号学习
文章目录参考资料1. 信号概述1.1 系统如何处理信号参考资料参考资料linux下20种信号实例说明http://blog.chinaunix.net/uid/28852942/year-201305-list-1.htmlsigaction函数sa_flags各标志影响的实例讲解http://blog.chinaunix.net/uid-28852942-id-3754478.htmllinux系统编程之信号(四):信号的捕捉与sigaction函数https://blog.youkuaiyun.com转载 2021-04-06 21:31:45 · 1307 阅读 · 0 评论 -
Linux 常用命令
ps -T 以线程方式显示系统信息ctrl + s 停止串口输出ctrl + q 打开串口输出chmod -R +x * 给当前目录及子目录文件添加可执行权限原创 2021-04-01 15:13:34 · 228 阅读 · 1 评论 -
设置GDB动态库搜索路径
启动gdb调试方式一:gdb exe core方式二:gdb exe(gdb) core-file core方式三:gdb -c core(gdb) file exeGDB动态库搜索路径https://www.cnblogs.com/tibetanmastiff/p/4759995.html设备上缺少lib库或者lib库被strip时,需要用到其他路径的动态库。set solib-absolute-prefix /mnt/test/libset solib-search-pa原创 2021-03-05 09:42:45 · 8341 阅读 · 2 评论 -
Linux统计文件夹中文件个数以及目录个数
https://blog.youkuaiyun.com/sganchang/article/details/91432435转载 2021-01-20 15:32:21 · 174 阅读 · 0 评论