自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 资源 (3)
  • 收藏
  • 关注

原创 Linux内核入门(十二)—— 新朋友:多线程

Linux内核入门(十二)—— 新朋友:多线程前言进程与线程前言停更了一段时间,是去海康实习去了,最近要准备秋招,继续学习内核有关的知识。前几篇我们看了进程间的通信,御三家:共享内存、消息队列、信号量。差信号量没写,为啥不写,因为这次要说的线程里也有信号量,我们先看看这个信号量,再回头去看进程里的信号量。进程与线程几乎所有的嵌入式笔试和面试题都会问到:进程和线程有什么区别?学过操作系统的同学可能很快就回答上,然鹅对于博主这样的废废,第一次听到这样的问题着实不知道答案,回去搜,网上给出的答案大概是

2021-08-04 10:50:15 368

原创 Linux内核入门(十一)——进程间通信:消息队列

Linux内核入门(十一)——进程间通信:消息队列前言什么是消息队列创建一个消息队列实现进程间通信前言上回书说到,共享内存的一些知识,我们再来看一个新东西:消息队列,其实它用起来和共享内存有点像,甚至调用的函数都差不多,参数啥的都能对应上。其实,共享内存、消息队列、信号量这三个通信方式的IPC通信里的“御三家”,至于管道和信号为啥不算,俺也不知道。什么是消息队列消息队列本质上是一个链表,很像之前管道里讲的:管道的本质是队列,就很奇怪,说是消息队列,本质却不是一个队列,而是叫作链式队列,和之前的管道

2021-06-27 16:54:44 721 1

原创 Linux内核入门(十)——进程间通信:共享内存

Linux内核入门(十)——进程间通信:共享内存前言什么是共享内存创建一块共享内存代码测试前言上回书说到信号,七七八八的东西比较多,相比之下,共享内存就没那么多弯弯绕绕了,共享内存的使用思路和前面讲的管道通信比较像,我们来看看什么是共享内存顾名思义:共享内存本质是一段内存,它存在于内核空间,由用户创建和销毁,不同进程可以共同访问同一段共享内存。这里就有个问题,共享内存谁都可以来随时读写,万一同时有两个进程同时在读写同一段共享内存咋办?这不得打起来?共享内存是不提供同步机制的,所以作为程序员需要编写

2021-06-25 16:03:14 833

原创 Linux内核入门(九)——进程间通信:信号

Linux内核入门(九)——进程间通信:信号前言信号信号的发送信号接收与处理前言之前我们看了进程间通信的方式:无名管道和有名管道,接下来看下一种通信方式——信号,不同于管道,信号在内核中已经存在,且数量固定,我们只管拿来用。查看信号的命令是:kill -l可以看到有64个不同的信号供我们使用。其中,就有一个熟人——9号信号:SIGKILL例如在终端杀死一个pid号为5200进程时,我们会输入:kill -9 5200,这里的“-9”就是上面表里的9号信号。信号全名:软中断信号,用来通知进程发

2021-06-19 12:08:20 297

原创 Linux内核入门(八)——进程间通信:有名管道

Linux内核入门(八)——进程间通信:有名管道前言有名管道进程间通信实验前言上回书说到,为了实现无亲缘关系进程之间通信,可以使用有名管道, 那么这个有名管道相比无名管道,有什么不同的地方呢?使用有名管道是会在文件系统中创建一个管道文件的。无名管道中可没有提到过文件这个东西。既然有名管道是以文件的方式存在的,那么不同进程之间当然可以通过读写这个文件来实现进程间通讯。注:Linux下有7种文件类型:文件类型创建方法- 普通文件open()d 目录文件mkdir()

2021-06-17 16:04:48 367

原创 Linux内核入门(七)——进程间通信:无名管道

Linux内核入门(七)——进程间通信:无名管道前言无名管道无名管道 附加说明前言上回书说到,父进程创建完子进程后,两个进程就分家了,各过各的,进程间无法实现数据交流。实际应用中我们经常会遇到需要进程间传递信号或数据的情况,有什么办法可以实现进程间通信呢?无名管道无名管道本质上是一个队列该队列存在于内核中,父子进程通过向内核里的这个队列读写数据,来实现通信,如图所示:创建无名管道所需的函数: int pipe(int pipefd[2]);该函数返回值:-1:创建失败0:创建成功

2021-06-16 17:55:25 561

原创 Linux内核入门(六)——进程基础

Linux内核入门(六)——进程基础前言前言

2021-06-16 12:59:03 206

原创 Linux内核入门(五)——写一个单机文件下载程序

Linux内核入门(五)——写一个单机文件下载程序前言如何打开一个目录程序实现前言前一阶段学习了文件IO函数,现在打算写一个综合一点的程序,实现这样的功能:从给定的目录下,下载某个文件到当前目录。Linux系统的一大特点就是,支持多用户同时登陆,那么就会经常出现这样的场景:某个用户需要从共享文件夹里下载点东西。我们可以试着写一份代码实现上述功能。我们代码的基本框架是这样的:用户输入一个目录,程序负责打开该目录列出该目录下所有文件用户输入需要下载的文件名打开用户输入的文件将文件中的内容拷

2021-06-13 17:32:43 266

原创 Linux内核入门(四)——静态库&动态库制作

Linux内核入门(四)——静态库&动态库制作前言制作一个静态库制作一个动态库前言静态库和动态库有什么区别?答:静态库在编译时被链接到程序;而动态库在程序运行时才被链接。形象一点的比方,静态库就像在旅行前,把需要的东西都打包好带着;而动态库则是不带,在旅途中需要了再买。这也导致了使用静态库编译出来的程序体积较大,一旦库函数改变,则需要整个重新编译;而动态库就灵活很多,编译出的程序体积小,即使库函数改变,也不需要将程序重新编译,只需要将修改后的库函数替换掉原来的库函数就行了。制作一个静态

2021-06-12 21:06:36 475

原创 Linux内核入门(三)——fread、read、fgets、fgetc函数

Linux内核入门(三)——read、fread、fgets、fgetc函数前言缓存哪里来?全缓存,行缓存,无缓存区别常见行缓存,全缓存,无缓存函数有哪些read、fread、fgets、fgetc四组读写函数效率比较前言上一篇博客讲到,使用open、close、read、write等函数,处理上述IO函数外,我们还可以使用c函数库提供的标准IO读写函数对文件进行操作。下图展示了,标准IO和文件IO之间的区别,简单来说就是,文件IO是由系统调用提供的,可以直接对文件读写的函数。而标准IO则经过一个叫“

2021-06-10 16:31:56 1610

原创 Linux内核入门(二)——open、close、read、write、lseek函数

Linux内核入门(二)——open、close、read、write、lseek函数前言1. open()函数2. close()函数3. read()函数4. write()函数5. lseek()函数前言在上一篇博文中,我提到“内核提供一系列具备预定功能的内核函数,通过一组称为系统调用(system call)的接口呈现给用户”,那么所谓的“系统调用”,长什么样子呢,这里就记录几个常见的系统调用函数,我们可以通过这几个函数,向内核提交请求,获取内核函数的服务入口(系统调用表),体验一下从用户态–&

2021-06-07 16:29:31 1202

原创 Linux内核入门(一)——小白学ARM

Linux内核入门(一)——小白学ARM前言LINUX的前世今生LINUX系统整体结构LINUX内核中的各模块功能1.文件系统2.内存管理模块3.进程管理模块&进程间通信模块4.驱动管理模块前言小白之前一直跟着正点原子的教程学Linux嵌入式驱动开发,但总觉得少了点什么,现在回头来看,发现是对LINUX内核的一些基础知识缺乏了解。例如说,教程里教你移植内核,教你写驱动,教你并发与竞争,但是,缺少一个整体框架,就容易学的云里雾里,所以小白觉得,学之前,还是得学一下LINUX的一些知识。LINU

2021-06-03 22:17:24 731

原创 学嵌入式,除了跟着写代码,还需要学什么

学嵌入式,除了跟着写代码,还需要学什么前言(CVTE嵌入式实习凉经)不能一味地敲代码(跟着正点原子的教程)今后的学习安排具体操作前言(CVTE嵌入式实习凉经)前几天参加视源股份(CVTE)的专业电话面试,聊了自己的毕业设计,还有一些嵌入式的问题,回答得一般般,但都能说出个大概,属于临时抱佛脚的那种。然后今天去网站上一看,面试未通过。还是没有捷径可走,背题是没用的,基础知识该学还得学。不能一味地敲代码(跟着正点原子的教程)面试下来最大的感觉,就是之前跟着正点原子的教程学,有很多东西(上层的东西),

2021-05-30 14:49:02 421 2

原创 小白找工作:嵌入式工程师(从单片机到嵌入式,我该投哪个岗位)

小白找工作:嵌入式工程师前言从单片机到嵌入式,我该投哪个岗位前言好久没有写博客了,这段时间主要是去做自己的毕业设计了,嵌入式学习也就先放了一段时间最近在找嵌入式实习的岗位,遇到了点事情,跟大家分享一下,避免走弯路从单片机到嵌入式,我该投哪个岗位小白一开始也很迷茫,先后投过硬件岗和软件岗;说说这些岗位的要求吧。硬件工程师 ,主要考察你的硬件设计能力,比如手画一个升压电路的原理图啦,AD软件的操作啦,高频信号的采样啦……对软件编写要求不高,甚至没有要求。看重你的数电模电的基础知识,以后的工作也差不

2021-05-28 11:08:16 1544

原创 正点原子嵌入式开发板Imx6ull mini使用体验——小白学ARM(十三)

正点原子嵌入式开发板Imx6ull mini使用体验——小白学ARM(十三)价格使用感受配套教程学习思路的比较价格本来打算双11买会有优惠,然而并没有,甚至比平时贵了10块。买的版本是EMMC(8GB),带4.3寸屏幕,分辨率800*480,一共是500块出头,tf卡我自己有一张。相比于他家满血的阿尔法开发板,mini板少了一些模块,比如音频输出模块,一些接口等,对于学习者mini板完全够用。使用感受相较于之前买的mini2440,imx6ull mini外观更好看,也没有反人类地把按键做在屏幕

2020-11-29 12:14:30 4882

原创 内核驱动编写-从入门到放弃——小白学ARM(十二)

内核驱动编写-从入门到放弃——小白学ARM(十二)看国嵌的驱动教程也有段时间了,给我的感觉就是有点乱。2440芯片内核使用的设备描述结构体来表示一个设备,开始做点灯程序的时候还算清楚,到后面涉及到串口和网卡驱动时,会在内核代码里到处跳,一个函数套另一个函数,层次确实有点让人眼花缭乱,加之他讲的有些地方不够清除,所以这块学的很慢,而且学完关上窗口感觉啥都回忆不起来。就是两个字:稀碎看看人家怎么写的驱动吧跑去原子那边看了一下,唉?人家写驱动用设备树,现在都用这种东西了吗看来2440终究还是老了,

2020-10-23 16:32:36 288 1

原创 内核模块的制作——小白学ARM(十一)

内核模块的制作——小白学ARM(十一)安装、卸载、查看模块内核模块所包含的内容makefile的编写内核模块的使用内核可选项内核模块,表现形式是.ko文件,可以看作是运行在开发板上的可执行文件。和在电脑上编写hello.c文件,编译,运行一样,制作一个内核模块也需要编写.c文件,也需要编写Makefile文件。安装、卸载、查看模块insmod /path/newmod.ko //安装模块lsmod //查看已安装rmmod newmod //卸载模块cat /proc/devi

2020-10-23 16:05:22 319 1

原创 内核与根文件系统的制作——小白学ARM(十)

内核与根文件系统的制作——小白学ARM(十)嵌入式平台下的内核制作根文件系统制作(制作失败,挪用现成的文件系统)嵌入式平台下的内核制作清除原有配置、中间文件make distclean图形化配置内核先找到教程提供的config-file文件,复制到内核目录下,改名为.config运行:make menuconfig ARCH=arm在图形化配置界面上找到Initramfs_source选项:将Initramfs_source前的文件目录删除,以防出现错误。编译内核ma

2020-10-23 15:44:33 296

原创 内核启动全攻略——小白学ARM(九)

内核启动全攻略——小白学ARM(九)网络环境搭建内存与NAND功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入网络环境搭建上一篇博客这块写的有些乱,这里重写:要启动内核,得先下载内核,内核下载离不开uboot,用uboot自带

2020-09-15 17:35:19 409

原创 我和TFTP相遇的那个盛夏——小白学ARM(八)

我和TFTP相遇的那个盛夏——小白学ARM(八)一通废话村里终于通网了TFTP和u-boot的爱恨情仇一通废话转眼春去秋来,小白也快成研二的秃子了,导师催着搞开题,哎,没法一心一意学嵌入式了。忙里偷闲,把嵌入式裸机最后一阶段的课程学完了。前面的裸机程序得心应手,按键、串口、nand、mmu、触摸屏等,有了学STM32 的基础搞起来很容易。但是到了最后一部分,网卡搭建、tftp移植、bootm那里就卡住了。。。村里终于通网了呐,要用网络,先得让开发板连网线吧,网线连哪呢?本来想用交叉线直接连笔记

2020-08-14 16:48:31 202

原创 Mini2440嵌入式裸机程序环境搭建(下篇)——小白学ARM(七)

Mini2440嵌入式裸机程序环境搭建(下篇)——小白学ARM(七)程序编写:Source Insight的设置SecureCRT的安装与设置DNW2的安装上回说到嵌入式裸机程序是放在nand flash里,清楚这点后我们开始程序编写、编译、下载程序编写:Source Insight的设置安装好Source Insight后需要两部操作才能开始编程:增加文件类型options——document options——document type——c source file将原来的*.c;.h

2020-08-01 17:22:29 488

原创 Mini2440嵌入式裸机程序环境搭建——小白学ARM(六)

Mini2440嵌入式裸机程序环境搭建(上篇)——小白学ARM(六)硬件准备:Mini2440开发板×1USB方口线×1USB转9针串口线×1电源线×1PC(笔记本或台式机)×1软件准备:Windows 上装好source insight(用来写代码)windows 上装好secureCRT(用来显示串口打印信息)VMware 上装好UbuntuUbuntu 上装好 arm-linux-gcc编译器(用来编译)Ubuntu 上装好 dnw2下载器(用来下载)将开发板接上电源

2020-07-21 21:11:14 632

原创 从个人电脑的角度看嵌入式开发板——小白学ARM(五)

从个人电脑的角度看嵌入式开发板——小白学ARM(五)各种存储器——SRAM、DRAM、SDRAM、ROM、NOR、NAND???mini2440开发板vs个人电脑各种存储器——SRAM、DRAM、SDRAM、ROM、NOR、NAND???非计算机专业出身的小白没学过计算机原理,所以看到这些名字长得差不多的存储器时的反映是这样的:后来在《STM32库开发实战指南(第二版)》上看到一张思维导图,结合小白个人的装机经历,给这个图升级了一下:这样一家人辈分分清了我们都知道电脑上有内存条,有单条8g,

2020-07-15 20:26:25 459 1

原创 Ubuntu下arm-linux-gdb的安装——小白学ARM(四)

arm-linux-gdb的安装——小白学ARM(四)Ubuntu下arm-linux-gdb的安装Ubuntu下arm-linux-gdb的安装下载安装包:http://ftp.gnu.org/gnu/gdb/或者选择站内安装包:https://download.youkuaiyun.com/download/qq_38406667/12610242选择版本: gdb-7.8.1.tar.gz下载完成后将压缩包移动到Ubuntu中(任意位置,最好是常用目录)cd到压缩包目录,在Ubuntu终端输入:ta

2020-07-15 19:00:40 2163

原创 细说嵌入式教程的坑——小白学ARM(三)

细说嵌入式教程的坑——小白学ARM(三)细说国嵌2440教程的坑细说国嵌2440教程的坑这几天是被国嵌2011年的教程整懵逼了。。。。小白于2020年6月在某宝买了一块mini2440的开发板,商家送了三套教程:1)申嵌视频2)国嵌视频3)国嵌2440全套视频教程其中,国嵌2440全套视频教程是2011年录制的老视频,编程用的ADS集成开发环境,内容嘛,现在回头看只能说一般般,知识点有点稀碎不成体系,看到裸机编程那边就放弃了。回头以看,还有个“国嵌视频”,这个教程居然是2011年全套教程的

2020-07-15 17:58:31 1448

原创 小白入坑Linux嵌入式ARM的苦逼历程(二)

标题小白入坑Linux嵌入式ARM的苦逼历程(二)启程:新手装备VMware Workstation 虚拟机Ubuntu系统NotepadSource insight开发板和教程的选择其他启程:新手装备和游戏一样,入门嵌入式需要准备一些必要的装备,掌握一些基本的软硬件使用方法,找到一个合适的教程,下面我就结合自己的经历述说一下需要用到的装备,安装教程可逐个百度:VMware Workstation 虚拟机安装平台:Windows 10版本:14.1.3(后来的使用时发现:会出现电脑插U盘时虚拟

2020-07-11 17:41:14 1097

原创 小白入坑Linux嵌入式ARM的苦逼历程(一)

小白入坑Linux嵌入式ARM的苦逼历程(一)起源:单片机之战彷徨:何去何从机遇:重拾方向入坑:脱发危机总结:菜鸟展翅起源:单片机之战本小白本科专业机电一体化,大二暑假第一次在学长那听到“单片机”这个东西,大三买了人生第一块51开发板,通过学习宋雪松老师的《手把手教你学51单片机》这本书,用51单片机做了几个小项目,算是入门单片机了吧。接下来就是入门STM32,开始用的普中的开发板,后来觉得板子有些问题卖了,买了野火的开发板和书,学了基础的IO操作,IIC,SPI等等。学到屏幕那边因为要准备考研,就放了

2020-07-09 19:14:20 1585 4

uboot配套mini2440源码带bin文件.7z

mini2440配套uboot,亲测可用,7z压缩包里是一个tar.gz文件,将该文件移动到Ubuntu下解压,得到uboot源码和已经编译好的bin文件,可直接用supervivi的v命令下载到nand中,再自行下载内核,可以完美启动

2020-08-13

gdb7.8.1.7z

官网下载的arm-linux-gdb 7.8.1,下载到电脑后解压到文件夹,里面是安装包

2020-07-13

VMware-workstation-full-14.1.3-9474260.exe

VMware Workstation 虚拟机14.1.3版本安装包。在该软件中,你可以创建多个虚拟的PC系统,包括但不限于:win7,Ubuntu,RedHat等,在这些创建的虚拟系统中的操作不会直接影响到电脑本体的系统,也就是说即使虚拟机中的系统崩溃了,电脑原本的系统也不会有事。

2020-07-11

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除