- 博客(1119)
- 资源 (10)
- 收藏
- 关注

原创 Linux入门的基础知识点汇总,有这篇就够了(持续更新)
很多粉丝给一口君留言,想要学习Linux资料,其实关注一口君的公众号,后台回复 1024 ,就有很多非常不错的电子书,但是有一个问题,很多粉丝是初学者,而这一大堆电子书,估计随便一本,还没看完就基本上开始劝退了。为什么呢?因为Linux的知识体系非常的庞大,IT行业很多领域都需要使用到Linux,有运维的、有应用程序开发的、有驱动开发的、有系统优化的、有搞单片机的、有做系统移植的、有做网络产品的等等。总结一句话,IT的很大部分从业者都需要掌握Linux的部分知识,但是由于每个人的从事领域不一样,对Li
2025-02-24 22:32:01
9924
37

原创 如何从头自己制作开发板?图文并茂,一步步操作给你看。
上段时间彭老师制作了一套物联网的板子,拥有录制物联网综合项目实验。采用TI公司的CC2530芯片很多没有接触过硬件设计的朋友比较好奇,问我一个电路板到底是怎么制作出来的,本文图文并茂,详细的给大家展示一下我的这套开发板制作过程。电路图设计软件: AD电路图【2层】:也可以用立创EDA打开:比较喜欢立创EDA的3D预览效果:正面:背面:电路图设计好之后,要找厂家生产PCB板,和贴片,彭老师有好兄弟有自己的工厂,不光自己有一些物料,还可以贴片,所以选择在嘉立创下单,生产PCB板然后自己贴片,【如果量
2022-06-12 07:38:14
8961
4

原创 Linux入门的基础知识点,有这篇就够了(持续更新)
很多粉丝给一口君留言,想要学习Linux资料,其实关注一口君的公众号,后台回复 1024 ,就有很多非常不错的电子书,但是有一个问题,很多粉丝是初学者,而这一大堆电子书,估计随便一本,还没看完就基本上开始劝退了。为什么呢?因为Linux的知识体系非常的庞大,IT行业很多领域都需要使用到Linux,有运维的、有应用程序开发的、有驱动开发的、有系统优化的、有搞单片机的、有做系统移植的、有做网络产品的等等。总结一句话,IT的很大部分从业者都需要掌握Linux的部分知识,但是由于每个人的从事领域不一样,对Li
2021-06-01 20:19:16
14607
3

原创 linux环境搭建-ubuntu16.04安装
一、环境搭建环境1、 ubuntu 16.04发行版2、 u-boot-2013.013、 FS_4412平台 (EXYNOS 4412)4、 交叉编译器 arm-none-linux-gnueabi-gcc1. vmwarevmware下载地址https://www.vmware.com/go/getworkstation-win回到顶部二、VMware15的安装1、双击VMware-workstation-full-xxx.exe。然后下一步2、勾选我接受许可协议,下一步
2021-03-10 10:25:28
10230
13

原创 呕心沥血整理的的嵌入式学习路线
曾经是某见的教学总监,我带出来的学生也有大几千了,基本都从事linux相关工作。网上看了很多的嵌入式学习路线,有的还凑活,有的纯粹是打广告卖板子,有的东拼西凑,简直是嵌入式劝退指南。大致给你梳理一下我从事的一个嵌入式的课程培训体系吧。基础1. linux基本操作:个人建议只要会一些基本的操作就行了,不需要太深入的学习每一个命令,用到的时候会去搜索就行了。需要掌握的知识如下:环境的搭建;Linux目录结构;文件类型;基本目录操作,文件操作,vim,ifconfig,ping,cd,cp,m
2020-09-10 19:39:53
31719
16
原创 以后你的代码再写得又快又好,你就是傻X!!!
在数据处理函数里偷偷夹藏几个sleep函数,后面就说不知道什么原因,处理速度上不来,算法需要优化,然后花(划)费(水)一周时间解决,问就说算法有问题!哪怕就保存1个简单的参数,你也整个数据库来保存,高低整个sqlite,各种库文件往代理死命怼,这代码量蹭蹭的往上涨。只要是个功能,哪怕就是打印个数据包,你也封装一下,每一个模块配一套测试函数,增加代码量,kpi一下就上来了,代码怎么复杂怎么写,能分成2个函数,就别合成一个函数,功能重构再重构,多一个函数又不多手你一分钱。
2025-03-25 06:45:55
276
原创 Linux rootfs:如何开机就自动添加某个用户?
项目开发需求,需要开机后就自动创建某个用户+密码厂家提供的sdk,只有adduser命令,该命令添加用户时,会有终端交互,需要手动输入2次密码,所以无法通过简单脚本方式创建。要实现自动填充密码,可以借助工具expect,但是该工具移植还需要依赖tcl库外加产品存储空间比较有限,本着能省就省原则,彭老师选择了另外一种方法,就是直接修改rootfs的shadow、passwd文件。
2025-03-09 22:19:52
455
原创 盘点我经常使用的嵌入式开发工具
通过串口收发文件,对于小一点的文件,这个工具非常实用,较大的还是用tftp、ftp吧。windows下终端工具,集成了linux常用命令,最关键是包含了git工具集。开发板和pc有时候有需要传输文件,最常用的就是tftp、ftp。有时候不知道局域网内有哪些ip地址,那这个神器可以帮助你!有时候想测试某个网口带宽,以及丢包啥的,那用iperf。嵌入式开发,串口工具是必备的,下面是一口君最常用的几款。流程图画的好的工程师早晚会成为一流的工程师。这个是draw.io画的流程图。文件、文件夹比较工具,
2025-02-05 19:53:53
953
原创 如何移植ftp服务器到arm板子?
很多厂家提供的sdk,一般都不自带ftp服务器功能,需要要发人员自己移植ftp服务器程序。本文手把手教大家如何移植ftp server到arm板子。1. 解压软件包获取方法:件文末。修改Makefile文件:make 后,当前目录下会生成两个文件:vsftpd 和 vsftpd.conf,这两个文件是我们要用的。将生成的 vsftpd 复制到目标板 /usr/sbin 目录,vsftpd.conf 复制到目标板 /etc 目录,并添加 vsftpd 为可执行:添加可执行权限复制配置
2025-01-25 21:20:31
899
原创 20个嵌入式工程师常见面试题
但是多进程程序更健壮,多线程程序只要有一个线程死掉,整个进程也跟着死掉了,而一个进程死掉并不会对另外一个进程造成影响,因为进程有自己独立的地址空间。而线程是共享进程中的数据,使用相同的地址空间,因此,CPU切换一个线程的花费远比进程小很多,同时创建一个线程的开销也比进程小很多。因为在 嵌入(inline)操作符 变为标准C的一部分之前,宏是方便产生嵌入代码的唯一方法,对于嵌入式系统来说,为了能达到要求的性能,嵌入代码经常是必须的方法。线程是进程的一个执行单元,是比进程还要小的独立运行的基本单位。
2025-01-25 21:10:06
919
原创 一文告诉你Linux下如何用C语言实现ini配置文件的解析和保存
INI(InitializationFile)文件是一种简单直观的数据存储格式,常用于配置应用程序的初始化设置。这种文件通常包含若干个节(section)和键值对(key-valuepairs)。INI文件的每一部分都是自描述性的,易于阅读和编辑,使得非程序员也能轻易理解并修改配置参数。INI文件因其简单易用性而在许多编程语言中广泛应用,尤其是在Windows操作系统中,很多应用程序都采用INI文件作为配置文件。
2025-01-20 11:37:02
900
原创 盘点我的公众号2024年阅读最高的18篇文章,你猜最高的那篇收益是多少?
2024就这么静悄悄的过去了,我也终于暂时结束了将近2个月令人煎熬的 9-12-7(9:00-24:00 7day),996真的就是弟弟!就在这个工作强度下,依然没有断更。打不垮你的,只会让你变得更强!大致浏览了一下2024年我发布的文章,并查看了一下收益,看到这一篇一两块甚至几毛的收益,虽然纯技术类文章非常小众,但是还是有十几篇文章阅读过了万,获得了腾讯的流量扶持。我整理了一下阅读最高的18篇文章的阅读量和文章收益。仅供大家参考。
2025-01-20 11:35:18
791
原创 linux下如何用C语言通过bsdiff4库给你的固件制作升级包?
它基于 BSDIFF4 格式,主要用于在不同版本的二进制文件之间生成差异补丁,并可以将这些补丁应用到原始文件上,从而生成目标文件。在软件发布过程中,开发者可以使用 bsdiff4 生成新旧版本之间的差异补丁,用户只需下载并应用补丁即可完成更新,大大减少了数据传输量和更新时间。在软件更新时,可以使用 bsdiff4 生成补丁文件,用户只需下载补丁文件并应用到旧版本上,从而节省带宽和时间。在资源受限的嵌入式系统中,bsdiff4 可以用于生成和应用更新补丁,减少更新所需的存储空间和带宽。
2024-12-29 00:20:01
761
原创 Linux 内核中的调试技巧
在 Linux 内核开发中,BUG_ON、WARN_ON 和 dump_stack 是三个非常有用的调试工具。它们分别用于不同严重程度的错误检测与调试。开发者应根据具体场景选择合适的工具,以便在错误发生时能够及时发现、定位并修复问题。通过合理使用这些工具,可以有效提升内核开发和调试的效率,为系统的稳定性和安全性保驾护航。
2024-12-29 00:12:08
620
原创 5款超级好用的局域网ip扫描工具
在实际工作中,我们经常需要扫描局域网内有哪些可以使用的IP地址,一口君给大家整理了5个非常好用的局域网ping工具,安装程序获取见文末。
2024-12-20 00:37:09
5472
原创 十大排序算法&&C语言实现
但它的平摊期望时间是 O(nlogn),且 O(nlogn) 记号中隐含的常数因子很小,比复杂度稳定等于 O(nlogn) 的归并排序要小很多。插入排序的代码实现虽然没有冒泡排序和选择排序那么简单粗暴,但它的原理应该是最容易理解的了,因为只要打过扑克牌的人都应该能够秒懂。插入排序是一种最简单直观的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。堆积是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。
2024-12-06 17:06:47
867
1
原创 zynq QSPI flash分区设置&启动配置
它们支持许多ioctl调用,用于擦除擦除块,将其标记为不良或检查擦除块是否不良,获取有关MTD设备的信息等。则认为读到了有效文件尾部,记录有效文件长度,然后根据该长度,复制成最终文件,该文件就是我们所需要的最终文件。每个分区大小结合要固化的程序,合理分配,既要考虑后面程序升级需要预留足够空间,也不要太大,造成浪费。这是旧版界面,而sysfs界面提供了更多信息。代表的是同一个MTD分区,但是**/dev/mtd0,/dev/mtd0ro。但是根据厂家提供的sdk,编译出的镜像重启后,文件系统的内容都会还原,
2024-12-03 15:57:25
1414
原创 一个不错的软件版本命名规范!
发布的镜像版本号,一定要和git服务器的commit对应起来,发布的时候,一定要删除本地的工程,从服务器pull下来最新的代码,之后重新整体编译,然后再做个大致的测试,确保没有问题之后再发布该版本。做到每一个镜像都要有明确的commit与之对应。否则会出现,在某一个版本测试出了bug,但是找不到这个镜像对应的源码,在其他版本上该bug又无法复现,bug无法闭环。
2024-11-27 17:54:34
498
原创 如何使用gpio模拟mdio通信?
实际项目开发中,由于设计原因,会将phy的mdio引脚连接到SoC的2个空闲gpio上,这样就无法通过Gmac自有的架构实现修改phy,因此只能通过GPIO模拟的方式实现MDIO,好在Linux支持MDIO via GPIO功能。该功能需要用到内核驱动mdio-bitbang.c和mdio-gpio.c。平台:复旦微kernel 版本:phy芯片yt8521phy连接到gmac0mdio总线连接到:gpioc 2portc 3。
2024-11-22 22:29:25
1469
原创 局域网传输好帮手——LocalSend
在“发送”这里,我们可以看到“选择”,这里我们可以选择“文件”、“文件夹”、“文本”、“剪贴板”。对于苹果系统,可以直接在App Store应用商店下载,Android版本我们可以在官网下载Apk安装包直接安装到手机上,Linux用户可以直接在线安装。首先所有设备要保证都在一个局域网内,如果是在WIFI的情况下,要保证移动设备都在一个WIFI下,如果是移动设备给pc传输文件要求都在WIFI路由器下。在“附近的设备”这里有个设置,我们可以给单个接受者,可以给多个接受者,也可以通过链接分享。
2024-11-20 19:35:57
2557
原创 shell脚本不错的总结
脚本就是命令解析器,包含一系列命令序列的文本文件。当运行这个脚本文本时,文件中包含的命令序列将得到执行。如果我们有一系列经常使用的 Linux 命令,我们可以把它们存储在一个文件中。脚本会读取这个文件并执行其中的命令。这样的文件被称为脚本文件。例如:run.sh。
2024-11-15 10:17:07
734
原创 每个开发者都应该知道的11种数据结构
无论你是在为编码面试做准备,优化你的代码,还是在处理复杂的应用程序,理解如何使用和实现数据结构是至关重要的。场景:最大堆对于那些你需要将最大(或最高优先级)元素保持在顶部的场景是理想的,比如作业调度系统或在数据集中找到第 k 大的元素。示例:在自动完成功能中,当用户输入“猫”时,字典树可以快速地给出像“弹射器”或“目录”这样的词的建议。场景:链表对于那些你预期会有频繁插入或删除的场景是有用的,尤其是在一个列表的中间。场景:队列在诸如任务调度、服务器中处理请求或图中的广度优先搜索等场景中是有用的。
2024-11-05 09:51:56
1011
原创 为什么你的网卡收不到不同网段的数据包?
最近开发过程中遇到个小问题,板子与客户的模块通过一款交换芯片连接,客户的模块会向我的板子发送组播报文,但是模块和我的板子并在同一个网段,默认情况下,这些数据包会被网卡过滤掉,那么我要如果通过套接字接收网卡上不通网段的数据包呢?这就涉及到一个知识点,网卡的混杂模式!混杂模式(Promiscuous mode),简称 Promisc mode,俗称监听模式。在 IEEE 802 定的网络规范中,每个网络帧都有一个目的MAC地址。非混杂模式下。
2024-10-21 21:18:05
422
原创 Linux使用graphics.h图形库绘图
graphics.h具有像素函数、线型函数、多边形函数、曲线函数、填充函数、图像函数等函数类型,简单和易用,学习成本低,简单的做出任何2d图像。之后在/usr/local/include/目录和/usr/local/lib/目录下安装了graphics.h相关的头文件以及libgraph库。libgraph源码下载地址:http://download.savannah.gnu.org/releases/libgraph/编译运行,编译时加-lgraph参数,链接到libgraph库。
2024-10-19 00:07:03
316
1
原创 从零开始一个git操作实例,图文并茂
徒弟不懂git怎么用,于是写了篇文章,把本地git操作从头写了一遍,自己去看吧!•Git是一个免费、开源的、分布式版本控制系统•它使用一个特殊的叫做仓库的数据库来记录文件的变化•仓库中的每个文件都有一个完整的版本历史记录2)工作流转Git 管理项目时,文件流转的三个工作区域:Git 的工作目录,暂存区域,以及本地仓库。你的本地仓库由 git 维护的三棵"树"组成。工作目录:它持有实际文件;暂存区(Index):它像个缓存区域,临时保存你的改动;本地仓库(Respository):可以把本地仓库理解成一个
2024-09-22 23:29:56
1163
原创 2分钟搞懂如何计算uart速率
1960年代,DEC(Digital Equipment Corp)公司的Gordon Bell采用大约50个分离元件设计了一个电路板,发明了UART。时至今日,已经60多年,虽然在个人消费类电子产品中,UART已近乎绝迹;但在工业、科研、国防、航空/航天等领域,UART却无处不在。很多从事多年嵌入式开发的老铁居然还不会根据波特率计算UART的速率,下面彭老师一分钟带你掌握计算方法。
2024-09-22 23:23:15
531
原创 8招教你轻松解决职场甩锅PUA!
你是不是四十岁了还不知道解决职场甩锅行为也是有公式的!那些混得好,能轻松赢得领导赏识,快速升职的,都是早就把这些技巧背的滚瓜烂熟!
2024-09-13 12:03:00
398
原创 如何交叉编译 Linux v4l-utils 依赖库?
若编译时遇到 “std” 相关错误,有可能是因为你的编译器版本较低,可以尝试通过在执行步骤 4 的 ./configure 前执行 export CXXFLAGS=“-std=gnu++11” 指定使用 gnu++11 来编译 C++ 代码。若 “tar” 解压失败,可能是系统没有安装 “bzip2” 库,可以通过 apt install bzip2 安装。若找不到 “wget”,可以通过 apt install wget 安装 “wget”。然后通过 tar 解压源码,并 cd 进入目录。
2024-09-02 22:44:08
919
原创 Linux下C语言编程能力提升经典实例
持续更新中…很多想从事嵌入式Linux开发的老铁问一口君,有没有快速提升自己编程水平的小例子?一口君根据自己多年工作经验,整理了一些基于Linux的c语言的非常实用的小例子,这些例子在嵌入式开发工作中,或多或少都会用到。看看你们会做多少?
2024-09-02 22:19:44
952
原创 Linux 下删除当前目录及子目录下的所有.o文件
(2) “ -name ‘*.o’ "根据名称来查找,查找所有以.o结尾的文件夹或者文件。(此处可以使用正则表达式匹配目标文件或目录);(5) -exec,-exec选项后边跟着一个所要执行的命令,表示将find出来的文件或目录执行该命令;(6) 然后是一对儿{},一个空格和一个\,最后是一个分号;(3) " -type f "查找的类型为文件;(4) “-print” 输出查找的文件目录名;(1) “.” 表示从当前目录开始递归查找;
2024-08-31 10:51:15
654
1
原创 让你的C程序,可以自动更新版本信息
date 能用来显示或设定系统的日期和时间,在显示方面,使用者能设定欲显示的格式,格式设定为一个加号后接数个标记。后续彭老师会单独在写一篇,一个比较经典的版本号管理实例文章,有兴趣的老铁可以关注下彭老师的号。中的内容,我们可以字节编写c程序修改,也可以直接使用命令date,本文主要讲解如何在编译的时候就给软件自动添加更新软件版本的功能,若是不以加号作为开头,则表示要设定时间,而时间格式为。大家可以根据自己需要,自己定制自己需要的版本号格式,厂家提供的sdk,往往都有git本地仓库,
2024-08-16 00:42:08
1150
原创 国内IT行业67家外包公司,有多少程序员在里面待过?
外包大幅度降(可)低(以)了(压)用(榨)人(更)成(多)本(人),本文特地给大家整理了一些IT行业的外包公司,降低了用(不)人(怕)风(裁)险(人)。正式员工多了一些保障和一丢丢的小权力,福瑞兰斯 SapFreelance。之前写过一篇关于外包公司的文章,很多粉丝看了后,感觉都在说自己,于是个别人就自以为高人一等了,成为IT领域的婆罗门了,打心眼里瞧不起外包员工;前海泰坦科技(深圳)慧博云通(慧博创测)
2024-08-11 11:34:29
1072
原创 如何让你的C语言程序打印的log多一点色彩?(超级实用)
接着上一篇文章《在平常的调试中,printf字体格式与颜色都是默认一致的。如果可以根据log信息的重要程度,配以不同的颜色与格式,可以很方便的查找到要点。
2024-07-28 22:02:10
1120
原创 由字节对齐引发的一场“血案“
最近在搞个网络通信协议,采用socket udp传输,运行时,居然报段错误了,经过debug,发现居然是因为字节对齐问题导致的。这个问题在实现通信协议,是经常会遇到的问题,为了方便读者理解,我把内容做了简化,分享给大家。
2024-07-27 10:36:51
412
S3C2440全套中文手册.PDF
2020-10-24
mdk414.rar
2020-10-23
移植无线AP,使无线网卡变成AP
2020-09-18
MPU6050-英文原版数据手册.pdf
2020-08-23
公众号一口Linux驱动部分源码汇总.rar
2020-08-23
zigbee网络建立过程
2013-05-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人