![](https://img-blog.csdnimg.cn/direct/47a0abd2e33443e081b4739c5cc79269.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
关于嵌入式
文章平均质量分 75
嵌入式内容随笔
石子君
今天你学习了吗?
展开
-
开发板上网详细教程
写在前面今天想配置开发板的boa服务器,需要下载sudo apt-get install bison flex,但是一直报错,就蒙蔽了,后来想想真不应该啊,电脑和开发板通信没问题,但也只是如此,开发板上网需要中转路由或者是依托电脑上网,借以此篇来说明开发板共享电脑上网。原创 2023-11-15 16:06:06 · 434 阅读 · 0 评论 -
Ubuntu配置Samba服务
在win系统下,win+r输入\你的ip(例如:\192.168.77.131)回车,会出现共享目录。将Linux的共享目录映射到Windows下,选中share这个共享目录,鼠标右键选择映射网络驱动器。sudo smbpasswd -a graysen //graysen 是我的用户名。点击完成后,会弹出登录窗口,输入账号和密码,再点击确定即可进行映射。查看你的虚拟机是否指定共享路径(vmware右键设置)查看Ubuntu的ip,输入ifconfig。前提:已经换好源,不然下载很慢或者不成功。原创 2023-05-10 10:11:11 · 7398 阅读 · 1 评论 -
ubuntu重启ssh服务
连接xshell的时候一直连接不上, 重启之后也是不管用,这时候ifconfig查看虚拟机的网卡是否发生变化,因为ip非静态。三、如果有sshd,则ssh-server已经启动;若仅有agent,则尚未启动;则可以看到配置文件,按照需求修改即可;基操ps查看ssh,再重启命令。原创 2023-05-10 09:15:03 · 6977 阅读 · 0 评论 -
树莓派控制4路5v继电器开关
杜邦线这里正常来说是公对母的杜邦线。我直接接的线。树莓派3b树莓派的电源线附上继电器的对接规格wiringPi是一个很棒的树莓派IO控制库,使用C语言开发,提供了丰富的接口:GPIO控制,中断,多线程等等。进入 wiringPi的github https://git.drogon.net/?p=wiringPi;a=summary 下载安装包。点击页面的第一个链接的右边的snapshot,下载安装压缩包。然后进入安装包所在的目录执行以下命令:验证wiringPi的是否安装成功,输入gpio -v,原创 2022-06-27 21:58:12 · 1616 阅读 · 0 评论 -
树莓派crt安装中文字库和中文输入法
由于树莓派默认是采用英文字库的,而且系统里没有预装中文字库,所以即使你在locale中改成中文,也不会显示中文,只会显示一堆方块。因此需要我们手动来安装中文字体,好在有一个中文字体是免费开源使用。或者可以直接输入下面代码,进入语言配置界面选择localisation options如图所示:选择change_locale在 Default locale for the system environment 中使用键盘的空格键选择以下五项:按键盘的“Tab”键选择“确认”,然后在出现的菜单中选择 zh_CN.原创 2022-06-26 18:09:16 · 1156 阅读 · 0 评论 -
树莓派四种登录方法详解
插一句:关于树莓派刷机,转自博主“编程那些年” 树莓派系统刷机教程下面介绍四种树莓派登录的方式。。。。简单粗暴将HMDI接口插入显示屏(前提:你得有显示屏哈哈当然电视机的就可以)在没有显示器的情况下,通过一根网线配置树莓派WIFI。然后开机自动连接WIFI,以后就可以直接通过主机通过VNC Viewer(Putty也可以) 控制树莓派。当然,如果有网线也可以控制了,但是毕竟没有直接通过无限网络获取IP来控制树莓派方便。步骤如下:将 SD 卡使用读卡器连接到电脑上并打开 SD 卡盘符,修改 config.tx原创 2022-06-27 00:14:38 · 2019 阅读 · 0 评论 -
树莓派更换国内可用镜像源
这里更新vim,下载总是失败因为默认的源是国外的,apt-get 安装的时候失败,我们更新成国内的源查看树莓派的镜像列表http://www.raspbian.org/RaspbianMirrors输入以下命令:用#注释或直接删除原有的内容,加上下面的:ctrl+o ,回车,ctrl+x 保存并退出。用#注释或直接删除原有的内容,加上下面的:ctrl+o ,回车,ctrl+x 保存并退出。然后输入下面命令:现在换源成功了,那么也就可以下载更新vim了注意:换源一直显示暂时不能解析mirrors.ali原创 2022-06-27 00:25:59 · 2032 阅读 · 0 评论 -
CRT连接树莓派shell中文乱码(亲测)
先说下问题:CRT连接树莓派后,英文可以正常显示,但是在命令行打不出中文,个别时候打出中文还是乱码。。。还有就是vi demo.c编辑的时候,里面打中文乱码网上好多方法说在crt设置utf-8或者gb2312,但是我试过不管用,于是我组合了下,把地区语言改动,也可能是偶然就成功了,仅供参考。。第一步选择第四个,设置语言,回车即可第二步选择第一个locale,回车接下来直接选择OK就行,按一下tab键直接跳到ok上面在 Default locale for the system environment原创 2022-06-26 17:58:36 · 650 阅读 · 0 评论 -
地址总线、物理地址、虚拟地址讲解
地址总线(Address Bus ;又称位址总线)属于一种电脑总线(一部份),是由CPU或有DMA能力的单元,用来沟通这些单元想要存取(读取/写入)电脑内存元件/地方的实体位址。换而言之,就是cpu能够访问内存的范围。我们平时所说的计算机是32位,64位,指的是计算机的CPU中寄存器的最大存储长度,如果寄存器中最大存储32bit的数据,就称之为32位系统。在计算机中,数据一般都是在硬盘,内存和寄存器之间进行来回存取。CPU通过3种总线把各组成部分联系在一起:地址总线,数据总线和控制总线。地址总线的宽度决定了原创 2022-07-06 05:17:18 · 3106 阅读 · 0 评论 -
面经宝典(持续更新)
感谢muxingyan博主的文章C语言面试题汇总(持续更)括在一对双引号之内的字符序列或转义字符序列称为字符串常量,如“How are you!”,char *p=“ni hao!”,字符串常量是放在静态存储区,如果你试图改变指针所指向的内容是会报错的。如果想将一个字符串存放到变量中,必须使用字符数组,就是用一个字符型数组存放一个字符串,例如:char data[10]=“china”,这个字符数组存放了一个字符串,它是可以改变的。静态局部变量分配在data/bss段,static修饰的全局变量的连接属性是原创 2022-07-07 19:56:24 · 320 阅读 · 0 评论 -
树莓派3B IO口驱动代码调试和测试
上一小节我们介绍了树莓派博通BCM2835芯片手册的部分内容,知道我们寄存器的类型和功能操作,那么这一小节实战操作。操作之前,先认识下ioremap()函数ioremap的作用:ioremap主要是把寄存器做映射。为什么要映射?内核空间只能访问虚拟地址的3~ 4G的地址空间,通常3~4G的空间一部分是映射物理内存,通常默认不会映射寄存器,如果想要访问某个寄存器,则需要把这个寄存的虚拟地址映射到高端内存上。这样内核空间才能直接访问。详解参考ioremap() 函数解析pin4driver2.c,文件目录是源目原创 2022-07-07 12:55:52 · 440 阅读 · 0 评论 -
树莓派博通BCM2835芯片手册导读
驱动两大利器︰电路图(通过电路图找寄存器)和芯片手册。芯片手册第六章P89∶文档中的功能说的非常清楚了,引脚输出是001,输入是000等等,我们的寄存器都是分组的,寄存器第0组是FESL0–9,寄存器第1组是FESL0–9…如图所示。需要注意的是,我们寄存器对应的引脚是BCM,而不是wiringPi的引脚,如图所示。更多的引脚详细介绍可以去树莓派官网查看https://pinout.xyz/pinout/pin7_gpio4我们在编写驱动程序的时候,IO空间的起始地址是0x3f000000,加上GPIO的偏原创 2022-07-06 05:22:55 · 709 阅读 · 0 评论 -
嵌入式软件笔试常见编程题
描述:字符串转换成数字,前面跳过空格,当第一个字符为+、-、数字字符时,函数转换,直到非数字字符,返回转换后的整型数。若非空格后的第一个字符不是上面三者其一,则返回0。转自https://blog.csdn.net/weixin_42934918/article/details/120191245。算法:2的次幂的二进制特征是最高位为1,其余全0。可以用它和(它-1)位与,结果为0表示是,反之不是。算法:让一个数的最低位和1位与,位与完数向右移1位,如果与的结果位1,计数+1。转载 2023-02-24 01:49:04 · 1072 阅读 · 0 评论 -
minicom 锁住问题:Device /dev/ttyUSB0 is locked.
在用串口读数据的时候,发现锁住了,通常是因为minicom上次使用时没有正常退出,系统自动在目录/var/lock中生成了lockfile而导致。ls 发现LCK…文件,把这个文件删除 rm -rf LCK…cd / 在根目录下进入 cd /var/lock。重新com进去就可以了(或者sudo minicom)欢迎大家看看之前的文章。原创 2022-12-22 15:46:12 · 4375 阅读 · 0 评论 -
Git stash系列详解和使用
有的时候项目中需要不停的切换分支,那我们已经修改的代码还不想提交,用什么方法既不用提交自己的代码成功切换分支呢?下面就介绍下git stash的系列用法,stash在英文意思是隐藏,git stash 的作用也是隐藏未完成的代码,防止它干扰别人或者新分支的工作。原创 2023-01-03 20:27:39 · 4250 阅读 · 1 评论 -
git commit提交以及撤销commit操作详解
此为默认方式(如果不指定reset的模式,默认使用 -mixed模式,即git reset --mixed HEAD^ 和 git reset HEAD^ 效果是一样的),不带任何参数的git reset,即时这种方式,它回退到某个版本, 只保留源码,回退commit和add信息。遇到提交了想撤回的尴尬情况,///////不过不用慌,平时养成发布版本前仔细核验的好习惯之外,还有。补救的措施,下面讲下使用git 如何提交信息,如何撤销以及修改信息等等。如果你进行了2次commit,想全部撤回,可以使用。原创 2023-02-16 16:31:44 · 4508 阅读 · 0 评论 -
ubuntu重启、关机命令
///////之前用linux系统, 一键解决也是可以的,反正我每次用命令(泪目…),中间崩了好几次,换回win,此篇也做记录//////原创 2023-02-15 10:55:13 · 1766 阅读 · 0 评论 -
ubuntu下alias自定义命令详解
在linux环境下操作,经常涉及不同项目路径跳转的问题,每次cd就很麻烦,下面使用alias就可以缓解这类问题alias命令用来设置命令的别名,从而将一些较长的命令进行简化。使用alias时,必须使用单引号将被设置别名的命令引起来,防止特殊字符导致错误。或者-p:显示全部已定义的别名。name(可选):指定要(定义、修改、显示)的别名。value(可选):别名的值。直接输入 alias 命令会列出当前系统中所有已经定义的命令别名。原创 2023-02-12 20:45:25 · 1379 阅读 · 0 评论 -
linux下tar、gz、zip等常用解压缩命令详解
tar是Unix和类Unix系统上的归档打包工具,可以将多个文件合并为一个文件,打包后尾缀.tar。目前,tar文件格式已经成为POSIX标准,最初是POSIX.1-1988,目前是POSIX.1-2001。本程序最初的设计目的是将文件备份到磁带上(tape archive 磁带存档),因而得名tar。tar的命令格式:,是用来打包和解包文件。tar本身不具有压缩功能,它是通过调用相关的工具进行解压和压缩的。tar使用使用tar压缩文件夹该命令表示压缩当前文件夹下的文件夹test,用gzip压缩,原创 2023-02-06 23:40:04 · 15131 阅读 · 0 评论 -
Linux下监控类命令:ps,du,top,df,free详解
而df 通过文件系统来快速获取空间大小的信息,当我们删除一个文件的时候,这个文件不是马上就在文件系统当中消失了,而是暂时消失了,当所有程序都不用时,才会根据OS的规则释放掉已经删除的文件,df计算的是通过文件系统获取到的文件的大小。top命令,是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,一般系统资源导致的崩溃问题可以使用top实时监控各进程,输出到日志文件分析某个进程是否假性释放…S:进程的状态,其中S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值是负数。原创 2023-01-30 23:32:22 · 1501 阅读 · 0 评论 -
shell脚本基础教程,快速上手
HOME、HOME、HOME、PWD、SHELL、SHELL、SHELL、USER等,方便在文件写入操作。1.基本语法 (1)定义变量:变量=值 (2)撤销变量:unset 变量 (3)声明静态变量:readonly变量,注意:不能unset2.变量定义规则 (1)变量名称可以由字母、数字和下划线组成,但是不能以数字开头,环境变量名建议大写。 (2)等号两侧不能有空格 (3)在bash中,变量默认类型都是字符串类型,无法直接进行数值运算。...原创 2022-08-30 13:45:14 · 17014 阅读 · 0 评论 -
ubuntu 修改环境变量
/////linux下修改环境变量有三种方法:一种用于当前终端,一种用于当前用户,一种用于所有用户。原创 2022-08-30 13:38:36 · 702 阅读 · 0 评论 -
minicom快捷教程
平时使用界面的串口工具,第一次使用minicom工具,记录下操作历程!特此说明,本文主要整理博客idea。原创 2022-08-30 12:03:01 · 4415 阅读 · 1 评论 -
ubuntu使用CMake时报错compilation terminated找不到头文件
使用CMake对项目进行编译时make结果报错。将引用头文件处改为头文件的绝对路径。找不到引用的头文件路径。原创 2022-08-29 15:34:22 · 714 阅读 · 0 评论 -
linux系统命令make、clean、distclean的用法讲解
make是一个命令工具,是一个解释makefile中指令的命令工具,一般来说,大多数的IDE都有这个命令,比如:Delphi的make,Visual C++的nmake,Linux下GNU的make.可见,makefile都成为了一种在工程方面的编译方法。makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。...转载 2022-08-19 10:03:01 · 2539 阅读 · 0 评论 -
linux查看修改文件权限命令
即4,2,1分别代表相应二进制位为1,也即拥有相应权限。第2位为1,代表拥有写权限;第1位为1,代表拥有可执行权限。为0,则没有相应的权限。要表示一个文件读写执行权限,底层只需一个字节,即8位即可。接下来每三个字符为一组权限,分为三组,依次代表所有者权限,同组用户权限,其它用户权限。思考下为什么是4,2,1分别代表读写执行权限,而不是其它数字?每组权限的三个字符依次代表是否可读,是否可写,是否可执行。5=4 + 1,表示拥有可读可执行权限,但是没有写权限。4代表读权限,2代表写权限,1代表执行权限。...原创 2022-08-17 09:08:58 · 4421 阅读 · 0 评论 -
ubuntu 添加、删除用户,修改用户名称,修改主机名
提示】更改密码和用户名时,请先更改密码,重新启动,然后更改用户名,重新启动。会自动同名组,创建/home/test/,从etc/skel/复制文件,并设定密码和相关初始身份信息。6、最后,再次进入/etc/sudoer 文件,将就用户名user删除。/etc/passwd里面,找到原用户名后哪一行,需要修改三个字段。ubuntu修改用户名user为robot,请按照顺序修改。你的用户名应该发现在很多群里,都要修改!7、重启,再次登录,用户名即修改成功。3、重启,再次登录,主机名即修改成功。...原创 2022-08-14 15:47:47 · 3064 阅读 · 0 评论 -
ubuntu中snap包的安装、更新删除与简单使用
Ubuntu 16.04引入了snap包管理,它是一种全新的软件包安装管理方式。它和dpkg/apt有本质的区别。什么是snap,snap是一种全新的软件包管理方式,它类似一个容器拥有一个应用程序所有的文件和库,各个应用程序之间完全独立。所以使用snap包的好处就是它解决了应用程序之间的依赖问题,使应用程序之间更容易管理。但是由此带来的问题就是它占用更多的磁盘空间。...转载 2022-08-14 15:25:42 · 8862 阅读 · 0 评论 -
关于linux中多进程(线程)同步和互斥全解
Linux设备驱动中必须解决的一个问题是多个进程对共享资源的并发访问,并发访问会导致竞态,linux提供了多种解决竞态问题的方式,这些方式适合不同的应用场景。Linux内核是多进程、多线程的操作系统,它提供了相当完整的内核同步方法。内核同步方法列表如下中断屏蔽原子操作自旋锁读写自旋锁顺序锁信号量读写信号量BKL(大内核锁)Seq锁。...转载 2022-07-26 01:07:32 · 969 阅读 · 0 评论 -
linux中加载驱动程序的命令以及加载方式过程分析
动态加载利用了Linux的module特性,可以在系统启动后用insmod命令添加模块(.ko),在不需要的时候用rmmod命令卸载模块,采用这种动态加载的方式便于驱动程序的调试,同时可以针对产品的功能需求,进行内核的裁剪,将不需要的驱动去除,大大减小了内核的存储容量。再次输入makemenuconfig命令,编辑sound选项,将其编译进内核(*),结果如下图所示,最后保存配置,退出。产品里,可以先采用动态加载的方式进行调试,调试成功后再编译进内核。在台式机上,一般采用动态加载的方式;...转载 2022-07-26 00:05:13 · 2805 阅读 · 0 评论 -
线程同步的几种方式
进程有自己的独立地址空间,因此进程之间重点关注通信,通信方式包括管道Pipe、命名管道FIFO、消息队列MessageQueue、共享存储SharedMemory、信号量Semaphore、套接字Socket和信号Signal。线程除了线程栈外其他数据都是共享的,如果同时读写数据可能造成数据不一致甚至程序崩溃的后果,因此线程之间重点关注同步。互斥锁(又名互斥量)强调的是资源之间的访问互斥每个线程在对共享资源操作前都会尝试先加锁,加锁成功才能操作,操作结束之后解锁。读写锁有一定的性能提升写独占。...转载 2022-07-26 00:00:50 · 5127 阅读 · 0 评论 -
Linux系统如何查看内存
Linux统计/监控工具sar详细介绍要判断一个系统瓶颈问题,有时需要几个sar命令选项结合起来使用,例如怀疑CPU存在瓶颈,可用sar-u和sar-qdeng等来查看怀疑内存存在瓶颈。原创 2022-07-25 23:32:39 · 18727 阅读 · 0 评论 -
设计模式之工厂模式
设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。设计模式总共有 23 种,这些模式可以分为三大类:创建型模式、结构型模式、行为型模式,是从建筑设计领域引入到计算机科学中来的,代表代码设计经验的总结,代码更容易被他人理解,保证代码可靠性、程序的重用性,拓展性更强。算法不是设计模式,算法致力于解决问题而非设计问题。设计模式原创 2022-07-13 19:21:56 · 252 阅读 · 0 评论 -
基于C socket编程的FTP文件传输软件(类似无界面版本的百度云盘)
FTP服务器(File Transfer Protocol Server)是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务。 FTP是File Transfer Protocol(文件传输协议)。顾名思义,就是专门用来传输文件的协议。简单地说,支持FTP协议的服务器就是FTP服务器。FTP是用来在两台计算机之间传输文件,是Internet中应用非常广泛的服务之一。它可根据实际需要设置各用户的使用权限,同时还具有跨平台的特性,即在UNIX、Linux和Windows等操作系统中都可实现F原创 2022-07-11 13:24:29 · 903 阅读 · 2 评论 -
Linux驱动程序概述以及框架
狭义上来说,驱动程序专指操作系统中的用来操控硬件的代码。下面的驱动框架中也会提到,我们在上层应用写好程序,要求实现某一个硬件的功能,比如点亮LED等等,这里面会通过一系列调用,在内核态找到我们所需要的驱动,通过函数操作直接与硬件交互。而在裸机开发中我们也经常会听到裸机驱动,其实严格意义上来说,没有操作系统是没有驱动概念的,如果非要说裸机驱动的话,也是指裸机中操作硬件的那部分程序。驱动与底层硬件直接打交道,按照硬件设备的具体工作方式。读写设备的寄存器,完成设备的轮询,中断处理,DMA通信,进行物理内存向虚拟内原创 2022-07-07 14:10:16 · 1694 阅读 · 0 评论 -
树莓派简单驱动编写以及代码测试
内核驱动编译copy驱动文件将驱动代码文件copy至源码树目录的字符设备驱动文件目录下,也就是,如图所示。在本目录下执行命令,进入编辑文件,添加,保存退出,如图所示。执行命令进行模块编译,静候结果,产生表示成功,如图所示。驱动编译已经做好了,接下来我们开始测试。执行命令,生成pintest ARM可执行文件。执行命令将我们刚刚生成的可执行文件pintest远程copy到树莓派,同时也将pin4driver.ko拷贝至树莓派,如图所示。tips:输入的密码是树莓派的密码,raspberry。经过上面的步原创 2022-07-05 00:19:17 · 1877 阅读 · 0 评论 -
理解Linux内核
如图,Linux内核主要包括5个模块:进程调度模块、内存管理模块、文件系统模块、进程间通信模块和网络接口模块。进程管理:进程管理负责进程对CPU的访问,如任务的创建、调度和终止等。内存管理:主要作用是控制和管理多个进程,使之能够安全的共享主内存区域。文件系统:Linux中虚拟文件系统(VFS)是linux基于各种逻辑文件系统抽象出的一种内存中的文件系统,隐藏了各种硬件设备细节,为用户提供统一的操作接口,使用户访问各种逻辑文件系统和设备时,不用区分具体的逻辑文件系统。网络功能:网络接口提供了对各种网络原创 2022-07-02 17:25:38 · 1075 阅读 · 0 评论 -
Linux文件系统以及VFS
通俗的意思来讲,我们说文件系统是根目录,因为Linux中一切设备皆文件,按照功能的不同来划分到不同的文件夹下,但严格意义上来说,文件系统是操作系统用于明确存储设备(常见的是磁盘,也有基于NAND Flash的固态硬盘)或分区上的文件的方法和数据结构,即在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。注意文件系统是操作系统用于明确存储设备组织文件的方法也就是文件管理系统程序,简称文件系统。Linux是一种兼容性很高的操作系统,支持的文件系统的格式很多,大体原创 2022-07-02 16:29:55 · 1534 阅读 · 0 评论 -
树莓派Linux内核编译
树莓派运行linux系统,内核代码开源,我们可以自己修改内核代码、编写驱动。本文介绍树莓派内核理解知识,如何获取linux内核代码,并完成编译、内核替换。基于原文,搭配老师笔记作了改动:http://nicekwell.net/blog/20171108/shu-mei-pai-nei-he-kai-fa-shuo-ming-xia-zai-dai-ma-bian-yi-ti-huan-nei-he.html树莓派的github主页:https://github.com/raspberrypi,里面包含了l原创 2022-07-01 13:24:37 · 1716 阅读 · 0 评论 -
ubuntu18安装常用软件或配置命令
此外,如果知道使用apt-get install命令安装的软件,可直接用命令 dpkg -S softwarename 显示包含此软件包的所有位置,dpkg -L softwarename 显示安装路径。先到网站下载安装包,网址:https://music.163.com/#/download , 然后下载客户端,点击下载全部客户端,选择Linux版,选择Ubuntu18.04。安装以后,发现还是有很多函数不全,只有一小部分pthread的函数,安装manpages-posix-dev就可以了。...原创 2022-06-30 20:45:21 · 804 阅读 · 0 评论