嵌入式Linux应用开发完全手册 全集
《嵌入式Linux应用开发完全手册》从最简单的点亮一个LED开始,由浅入深地讲解,使读者最终可以配置、移植、裁剪内核,编写驱动程序,移植GUI系统,掌握整个嵌入式Linux系统的开发方法。 《嵌入式Linux应用开发完全手册》由浅入深,循序渐进,适合刚接触嵌入式Linux的初学者学习。
韦东山
深圳百问网科技有限公司技术总监,毕业于中国科学技术大学电子、软件专业双学位,10余年嵌入式一线开发经验, 畅销书<<嵌入式Linux应用开发完全手册>>作者, 擅长ARM/MIPS等架构的Linux底层系统开发, 曾为多家知名培训机构特邀讲师,2011年陆续录制的工程师必看教程------韦东山系列Linux/Android视频,有口皆碑。累计学员10万+,当之无愧成为嵌入式培训领域的佼佼者。
展开
-
万事开头难 - 介绍IMX6ULL启动方式
不同开发板,启动方式不一样,今天我们来介绍imx6ull开发板的启动方式,这非常重要。若不了解清楚启动方式,后面的所有开发工作便无从谈起。本文摘自100ask_imx6ull 开发板 配套学习手册-《嵌入式Linux应用开发完全手册_韦东山全系列视频文档全集V2.5》.pdf1.1 IMX6ULL 启动方式参考资料:开发板资料网盘路径:06_Datasheet(数据手册)-> Core_board->CPU->IMX6ULLRM.pdf”中《Chapter 8: Syste原创 2020-09-10 15:13:43 · 3390 阅读 · 0 评论 -
【手册更新】完全手册V2.4发布,增加一大波内容,快来看看都有哪些改进。。。
近期我们除了发布100ASK_STM32MP157开发板,还更新了手册,今天发布《嵌入式Linux应用开发完全手册_韦东山全系列视频文档全集V2.4》(下简称“完全手册V2.4”)该手册和《升级版视频》完全一 一对应。同时兼容100ASK_IMX6ULL,100ASK_STM32MP157。先说小伙伴最关心的,相比《完全手册V2.3》,V2.4做了哪些改进:重新编排文档章节,更合理:不再需要跳来跳去增加《第2篇 环境搭建、Linux基本操作、工具使用》,让初学者看完这篇后就可以开始入门的原创 2020-07-28 16:33:50 · 1050 阅读 · 0 评论 -
嵌入式Linux配置网络
2.2.4 配置网络重点来了,以前我们在VMware中使用桥接,这需要保证Windows、Ubuntu、开发板三者互通,而很多人的电脑有多个网卡,这涉及的网络设置太复杂了。现在我们使用NAT方式,这样会简单很多。2.2.4.1 设置Ubuntu使用NAT网络先关闭VMware中的Ubuntu,在VMware界面设置Ubuntu使用NAT,如下图:然后启动Ubuntu,打开终端,执行ifconfig命令,确定网卡IP,如下图所示,记住这个IP(192.168.75.128,也许你的跟它不一样),后原创 2020-07-04 21:08:53 · 1039 阅读 · 1 评论 -
学习嵌入式之前,这些概念要搞清~
ROM(Read Only Memory)和RAM(Random Access Memory)指的都是半导体存储器,ROM在系统停止供电的时候仍然可以保持数据,而RAM通常是在掉电之后就丢失数据,典型的RAM就是计算机的内存。ROM有很多种,PROM是可编程的ROM,它和EPROM(可擦除可编程ROM)的区别是,PROM是一次性的,也就是软件灌入后,就无法修改了,这是早期的产品,现在已经不再使...原创 2018-05-04 11:26:15 · 1322 阅读 · 0 评论 -
构建Linux根文件系统
第17章 构建Linux根文件系统本章目标l 了解Linux的文件系统层次标准(FHS)l 了解根文件系统下各目录的作用l 掌握构建根文件系统的方法:移植Busybox、构造各个目录、文件等l 掌握制作yaffs、jffs2文件系统映象文件的方法 17.1 Linux文件系统概述17.1.1 Linux文件系统的特点类似于Windows下的C、D、原创 2016-07-11 11:46:09 · 3574 阅读 · 0 评论 -
嵌入式开发概述
嵌入式系统的概念嵌入式系统在术语上被定义为:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适用于应用系统,对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。它的特点在于两方面:嵌入、专用。从20世纪70年代起,微型机以小型、价廉、高速数值计算等特点迅速走向市场,它所具备的智能化水平在工业控制领域发挥了作用,常被组装成各种形状,“嵌入”到一个对象体系中,进行某类智能化的控制。这样原创 2016-07-11 10:25:07 · 6838 阅读 · 2 评论 -
开发板和 Ubuntu 之间怎么传文件
了解更全面的学习嵌入式Linux的方法,可以看我之前写的文章:如何学习嵌入式Linux:https://blog.csdn.net/thisway_diy/article/details/106101091开发板和 Ubuntu 之间网络互通之后,就可以在两者之间传输文件了。开发板通过 NFS 挂载 Ubuntu 的目录开发板上不一定安装有 FTP 服务、SSH 等服务,所以不一定能使用 FTP 等工具登录开发板。但是开发板的系统一般都自带 mount 命令,并且支持 NFS 文件系统。所以可以原创 2020-12-21 16:53:11 · 3015 阅读 · 0 评论 -
Linux常用命令/查找/搜索命令/压缩/解压命令网络命令
Linux常用命令1.pwd2.cdcd命令有些缩略用法:$ cd - // 进入上次目录, 比如先进入a目录再进入b目录,执行此命令后即回到a目录$ cd ~ // 进入家目录3.mkdir4.rmdir5.ls使用示例:6.cp复制目录时,常用如下命令:$ cp -rfd dir_a dir_br:recursive,递归地,即复制所有文件f:force,强制覆盖d:如果源文件为链接文件,也只是把它作为链接文件复制过去,而不是复制实际原创 2020-09-22 10:44:05 · 1676 阅读 · 0 评论 -
怎么使用 Yocto 构建文件系统?
1. 简介Yocto项目使用更强大和定制化的方法,来构建出适合嵌入式产品的Linux系统。Yocto不仅仅是一个制做文件系统工具,同时提供整套的基于Linux的开发和维护工作流程,使底层嵌入式开发者和上层应用开发者在统一的框架下开发,解决了传统开发方式下零散和无管理的开发形态。yocto是一个开源的“umbrella”项目,意指它下面有很多个子项目,Yocto只是把所有的项目整合在一起,同时提供一个参考构建项目Poky,来指导开发人员如何应用这些项目,构建出嵌入式Linux系统。它包含Bitbake、原创 2020-11-26 17:19:28 · 4888 阅读 · 4 评论 -
怎么使用 Buildroot 构建根文件系统
1. Buildroot 简介制作根文件系统有归多种方法:① 使用Busybox手工制作Busybox本身包含了很了Linux命令,但是要编译其他程序的话需要手工下载、编译,如果它需要某些依赖库,你还需要手工下载、编译这些依赖库。如果想做一个极简的文件系统,可以使用Busybox手工制作。② 使用Buildroot自动制作它是一个自动化程序很高的系统,可以在里面配置、编译内核,配置编译u-boot、配置编译根文件系统。在编译某些APP时,它会自动去下载源码、下载它的依赖库,自动编译这些程序。B原创 2020-11-24 15:32:18 · 4872 阅读 · 1 评论 -
怎么安装内核和模块到开发板上?
开发过程中最常用的是NFS假设:执行上述命令后,在Ubuntu的/home/book/nfs_rootfs目录下已经有了uImage、dtb文件,并且有lib/modules子目录(里面含有各种模块)。下面,要把这些文件复制到开发板上。如果你使用的是VMware NAT方式,或是使用docker,假设Windows IP为192.168.1.100,在开发板启动进入Linux后,输入root登录,然后执行以下命令(注意:必须指定port为2049、mountport为9999):mount -t原创 2020-11-24 15:03:18 · 1093 阅读 · 1 评论 -
怎么编译Linux内核?
1. Linux 内核介绍Linux内核(英语:Linux kernel)是一种开源的类Unix操作系统宏内核。整个Linux操作系统家族基于该内核部署在传统计算机平台(如个人计算机和服务器,以Linux发行版的形式)和各种嵌入式平台,如路由器、无线接入点、专用小交换机、机顶盒、FTA接收器、智能电视、数字视频录像机、网络附加存储(NAS)等。工作于平板电脑、智能手机及智能手表的Android操作系统,它的底层操作系统也是Linux。尽管在桌面计算机的占用率较低,但基于Linux的操作系统统治了几乎从移原创 2020-11-24 14:59:30 · 4572 阅读 · 6 评论 -
Linux解压编译Tfa/bootloader
1.解压编译Tfa1.1 Tfa 介绍Trusted Firmware-A(TF-A)是用于 Arm A-Profile 体系结构(Armv8-A 和 Armv7-A)的安全世界软件的参考实现,其中包括 Exception Level 3(EL3)安全监视器。它为在 AArch32 或 AArch64 执行状态下的安全世界启动和运行时固件产品化提供了一个合适的起点。TF-A 实施 Arm 接口标准,包括:电源状态协调接口(PSCI)受信任的板引导要求客户端(TBBR-CLIENT)SMC呼叫约原创 2020-11-23 11:11:06 · 1631 阅读 · 5 评论 -
配置交叉编译工具链-嵌入式Linux
注意:使用我们提供的Ubuntu映象文件时,请按照我们的目录结构,手动设置交叉编译工具链以及编译的架构环境变量配置,(建议配置为永久生效),这里我们提供了两种交叉编译工具链,分别是buildroot构建生成的8.4以及yocto生成的9.3工具链,开发板系统默认安装的系统使用的是通过yocto编译构建,所以如果只想针对于文件系统应用做开发或者编译内核uboot等操作,建议只使用yocto的交叉编译工具链。1.设置 yocto 交叉编译工具链(不推荐)交叉编译工具链用来在Ubuntu主机上编译应用程序,原创 2020-11-23 10:19:20 · 3305 阅读 · 1 评论 -
使用命令通过串口实现开发板和PC文件互传
1.使用 rz 命令通过串口下载 Windows 文件到开发板上注意:rz命令不稳定,不可靠,在没有其他办法的情况下再用它。可以使用 rz 命令,将 PC 上的文件传输到开发板。首先使用串口工具登陆开发板,然后在开发板上输入rz命令,此时终端会提示等待接收 ,此时在Mobaxterm里面鼠标右键会弹出一个选择框,点击Send file using Z-modem 来传输文件,如下图所示:注意: rz命令传输速率太小,适合传输小文件,不适合大文件,我们还是推荐nfs挂载的方式进行文件的传输。2原创 2020-11-23 10:02:04 · 11464 阅读 · 3 评论 -
Linux-kmod 内核模块管理工具使用
1.1 lsmod:列出已经安装了哪些模块[root@imx6ull:~]# lsmod提示信息含义说明:• Module :表示模块的名称• Size : 表示模块的大小• Used: 使用者1.2 insmod:手工安装模块后面讲到的 modprobe 命令,它是从/lib/modules 下的目录里自动安装某个模块。但是在实验过程中,我们经常需要手工安装其他目录下的模块,可以使用以下命令安装(需要指定模块文件即 ko 文件的位置)。[root@imx6ull:~]# insmod原创 2020-11-23 09:48:29 · 5180 阅读 · 0 评论 -
嵌入式Linux异步通知方式
功能介绍所谓同步,就是“你慢我等你”。那么异步就是:你慢那你就自己玩,我做自己的事去了,有情况再通知我。所谓异步通知,就是 APP 可以忙自己的事,当驱动程序用数据时它会主动给 APP 发信号,这会导致 APP执行信号处理函数。仔细想想“发信号”,这只有 3 个字,却可以引发很多问题:① 谁发:驱动程序发② 发什么:信号③ 发什么信号:SIGIO④ 怎么发:内核里提供有函数⑤ 发给谁:APP,APP 要把自己告诉驱动⑥ APP 收到后做什么:执行信号处理函数⑦ 信号处理函数和信号,之.原创 2020-11-19 10:00:33 · 1027 阅读 · 1 评论 -
嵌入式Linux的POLL/SELECT 方式
7.3.6 POLL/SELECT 方式功能介绍 POLL 机制、SELECT 机制是完全一样的,只是 APP 接口函数不一样。简单地说,它们就是“定个闹钟”:在调用 poll、select 函数时可以传入“超时时间”。在这段时间内,条件合适时(比如有数据可读、有空间可写)就会立刻返回,否则等到“超时时间”结束时返回错误。用法如下。APP 先调用 open 函数时。APP 不是直接调用 read 函数,而是先调用 poll 或 select 函数,这 2 个函数中可以传入“超时时间”。它们的作原创 2020-11-19 09:55:14 · 808 阅读 · 0 评论 -
嵌入式Linux获取设备信息、查询方式、休眠-唤醒方式
7.3.3 获取设备信息通过 ioctl 获取设备信息,ioctl 的参数如下:int ioctl(int fd, unsigned long request, ...);有些驱动程序对 request 的格式有要求,它的格式如下:比如 dir 为_IOC_READ(即 2)时,表示 APP 要读数据;为_IOC_WRITE(即 4)时,表示 APP 要写数据。size 表示这个 ioctl 能传输数据的最大字节数。type、nr 的含义由具体的驱动程序决定。比如要读取输入设备的 evbi原创 2020-11-19 09:44:39 · 839 阅读 · 0 评论 -
嵌入式Linux APP 访问硬件的 4 种方式
妈妈怎么知道卧室里小孩醒了?① 时不时进房间看一下:查询方式简单,但是累② 进去房间陪小孩一起睡觉,小孩醒了会吵醒她:休眠-唤醒不累,但是妈妈干不了活了③ 妈妈要干很多活,但是可以陪小孩睡一会,定个闹钟:poll 方式要浪费点时间,但是可以继续干活。妈妈要么是被小孩吵醒,要么是被闹钟吵醒。④ 妈妈在客厅干活,小孩醒了他会自己走出房门告诉妈妈:异步通知妈妈、小孩互不耽误。这 4 种方法没有优劣之分,在不同的场合使用不同的方法。百问网技术论坛:http://bbs.100ask.ne.原创 2020-11-19 09:22:54 · 1998 阅读 · 3 评论 -
嵌入式输入系统框架及调试
7.1 什么是输入系统先来了解什么是输入设备?常见的输入设备有键盘、鼠标、遥控杆、书写板、触摸屏等等,用户通过这些输入设备与 Linux 系统进行数据交换。什么是输入系统?输入设备种类繁多,能否统一它们的接口?既在驱动层面统一,也在应用程序层面统一?可以的。Linux 系统为了统一管理这些输入设备,实现了一套能兼容所有输入设备的框架:输入系统。驱动开发人员基于这套框架开发出程序,应用开发人员就可以使用统一的 API 去使用设备。7.2 输入系统框架及调试7.2.1 框架概述作为应用开发人员原创 2020-11-19 09:08:48 · 555 阅读 · 0 评论 -
Framebuffer 应用编程中涉及的 API 函数
本节程序的目的是:打开 LCD 设备节点,获取分辨率等参数,映射 Framebuffer,最后实现描点函数。5.2.1 open 函数在 Ubuntu 中执行“man 2 open”,可以看到 open 函数的说明:头文件:#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>函数原型:int open(const char *pathname, int flags); int o原创 2020-11-13 18:52:38 · 1049 阅读 · 2 评论 -
LCD屏幕操作原理_嵌入式Linux
5.1 LCD 操作原理在 Linux 系统中通过 Framebuffer 驱动程序来控制 LCD。Frame 是帧的意思,buffer 是缓冲的意思,这意味着 Framebuffer 就是一块内存,里面保存着一帧图像。Framebuffer 中保存着一帧图像的每一个像素颜色值,假设 LCD 的分辨率是 1024x768,每一个像素的颜色用 32 位来表示,那么 Framebuffer 的大小就是:1024x768x32/8=3145728 字节。简单介绍 LCD 的操作原理:① 驱动程序设置好 L原创 2020-11-13 18:22:21 · 2757 阅读 · 4 评论 -
【调试笔记】韦东山:在100ask_imx6ull上移植使用六轴传感器ICM20608
之前发了LCD调试笔记,大家很感兴趣,所以这次再来一篇:六轴传感器ICM20608驱动移植笔记,大家还需要什么移植笔记?可以留言。我们尽量满足。1.1 移植思路先找到驱动:也许内核里已经有,也许需要去网上查找。打开bing.com,搜“ICM20608 linux driver”,发现这个网址:https://github.com/torvalds/linux/blob/master/drivers/iio/imu/inv_mpu6050/inv_mpu_spi.c大胆假设,在linux内核中应该原创 2020-10-29 10:54:17 · 3141 阅读 · 1 评论 -
JZ2440在U-boot中通过网络方式烧录镜像的几种方法
进入ubootu-boot相当于我们PC机的BIOS,,在PC上厂商为我们做好了图形界面,操作起来非常便利。虽然在2440中u-boot并没有界面,但是百问网制作好的uboot中有目录菜单,比较常用的操作都列了出来,开发板上电后,在倒计时结束之前按下任意键进入uboot后就可以看到下面的菜单及说明:##### 100ask Bootloader for OpenJTAG #####[n] Download u-boot to Nand Flash[c] Re-scan Nor Flash[u] C原创 2020-10-29 09:20:12 · 1471 阅读 · 1 评论 -
Makefile 的使用(在 Linux 中使用 make 命令来编译程序)
第三章 Makefile 的使用在 Linux 中使用 make 命令来编译程序,特别是大程序;而 make 命令所执行的动作依赖于 Makefile 文件。最简单的 Makefile 文件如下:hello: hello.cgcc -o hello hello.cclean:rm -f hello将上述 4 行存为 Makefile 文件(注意必须以 Tab 键缩进第 2、4 行,不能以空格键缩进),放入 01_hello目录下,然后直接执行 make 命令即可编译程序,执行“make cle原创 2020-10-28 17:37:11 · 30053 阅读 · 2 评论 -
GCC 编译器的使用&编译过程
视频观看地址:https://www.100ask.net/detail/p_5f338ae3e4b075dc42ad44a1/8全文下载:嵌入式Linux系统开发完全手册 第二版源文件需要经过编译才能生成可执行文件。在 Windows 下进行开发时,只需要点几个按钮即可编译,集成开发环境(比如 Visual studio)已经将各种编译工具的使用封装好了。Linux 下也有很优秀的集成开发工具,但是更多的时候是直接使用编译工具;即使使用集成开发工具,也需要掌握一些编译选项。PC 机上的编译工具链为原创 2020-10-21 23:15:37 · 3916 阅读 · 0 评论 -
PC 和开发板之间传输文件
8.1 传输文件的多种方法在嵌入式开发中,涉及交叉编译:在 PC 上编译,在开发板上运行。所以就涉及 PC 和开发板之间的文件传输,方法有多种:网络传输、串口传输、USB 传输,当然,还有最笨的方法:U 盘拷贝。一般的日常开发流程为:a. 在 Windows 上阅读修改代码,然后通过 FileZilla 把代码传到 VMWare 中的 Ubuntu;b. 在 Ubuntu 上编译程序;c. 把程序下载到开发板上,运行验证,d. 在 Windows 下通过串口操作开发板。所以在 Windows原创 2020-10-21 19:12:15 · 14121 阅读 · 8 评论 -
烧写整个系统或更新部分系统到STM32MP157开发板
7.1 100ASK_STM32MP157 启动开关7.1.1 全功能版板子上的红色拨码开关用来设置启动方式,支持这四种方式:EMMC 启动、SD 卡启动、USB 烧写以及 M4(debug)模式。板子背后画有一个表格,表示这四种方式如何设置。表格中 BOOT0 对应开关 1,BOOT1 对应开关 2,BOOT2对应开关 3,如下:这四种启动方式的设置示意图如下:刚出厂的板子在 EMMC 上烧写了系统,你可以设置为 EMMC 启动方式。其中的 USB 启动模式主要用来烧写系统。7.2 在原创 2020-10-21 18:01:53 · 14023 阅读 · 5 评论 -
构建一个适合stm32mp157系列开发板的嵌入式Linux系统
6.1 前言Linux平台上有许多开源的嵌入式linux系统构建框架(框架的意思就是工具),这些框架极大的方便了开发者进行嵌入式系统的定制化构建,目前比较常见的有OpenWrt, Buildroot, Yocto,等等。其中Buildroot功能强大,使用简单,而且采用了类似于linux kernel的配置和编译框架,所以受到广大嵌入式开发人员的欢迎。本章重点介绍使用Buildroot_2020.02LTS版构建文件系统和u-boot, kernel镜像的方法,并从这三个部分入手,描述如何使用Build原创 2020-10-12 17:39:34 · 9298 阅读 · 7 评论 -
stm32mp157开发板常用系统工具使用
5.1 Linux 磁盘类工具/命令使用注意:以下操作都是在开发板上操作,我们的教程涉及多款开发板,不同的 linux 版本,命令用法可能稍有差异。5.1.1 df:查看系统已用空间5.1.1.1 df 支持的命令参数简介[root@imx6ull:~]# df [-PkmhT] [目录或档名]选项与参数:-k :以 KBytes 的容量显示各档案系统;-m :以 MBytes 的容量显示各档案系统;-h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;原创 2020-10-10 11:36:13 · 2043 阅读 · 0 评论 -
stm32mp157开发板LCD 显示测试&触摸屏测试
注 意 : 此 章 节 测 试 需 要 外 接 LCD 屏 幕 才 可 以 进 行 测 试 验 证 , LCD 模 块 介 绍 请 参 考 页 面http://download.100ask.org/modules/Lcd/100ask_imx6ull_7-inch_LCD/此节演示通过 fb-test 测试程序让 lcd 显示红绿蓝白 4 中颜色,用以观察 lcd 的显示效果。首先需要关闭默认的 qt gui 程序,才可以执行下面的测试命令,关闭 qt 命令如下所示:[root@100ask:原创 2020-10-09 14:43:45 · 2727 阅读 · 1 评论 -
stm32mp157开发板LINE 接口测试方法
4.5.2 LINE 接口测试方法注意:LINE 接口只支持音频播放输出,需要专门支持 LINE 接口的设备才可以进行连接播放音频。如下红框所示为 LINE 接口所在位置。外接模块测试注意:LINE 模块需要单独购买,我们暂未提供 LINE 模块的相关商品。请参考下图所示连接 LINE 模块到 LINE 接口,之后使用下述播放音频命令进行播放音频文件,此时可以通过 LINE 音箱听到声音输出。播放音频:将耳机插入开发板耳机孔,使用 aplay 进行播放音频文件:[root@100as原创 2020-10-09 14:36:35 · 1469 阅读 · 0 评论 -
stm32mp157开发板MIC 接口测试方法
4.5.2 MIC 接口测试方法录制音频:使用如下命令进行录制(执行命令后,对着板载咪头说话):[root@100ask:~]# amixer -c 0 cset numid=50 1[root@100ask:~]# amixer -c 0 cset numid=48 1[root@100ask:~]# amixer -c 0 cset numid=46 1[root@100ask:~]# amixer cset numid=3 60000 60000[root@100ask:~]# a原创 2020-10-09 14:32:47 · 1999 阅读 · 2 评论 -
stm32mp157开发板声卡接口测试
4.5 声卡接口测试4.5.1 耳机接口测试方法此节演示使用三段式耳机在 100ask_stm32mp157_pro 开发板上录制声音、播放音频。注意: 需要准备一个带麦克风的三段式耳机,如下图所示:录制音频:将耳机插入开发板耳机孔,使用如下命令进行录制(执行命令后,对着麦克风说话):[root@100ask:~]# arecord -v --format=cd --device=plughw:0,1 test.wav参数讲解:–format=cd :设置格式为 16 bit l原创 2020-10-09 14:29:19 · 1418 阅读 · 0 评论 -
stm32mp157开发板USB Host 接口&OTG 接口测试
4.3 USB Host 接口测试此节演示在终端下如何在 USB Host 接口上使用 usb 存储设备。注意:需要准备一个 USB 设备,比如 U 盘、USB 蓝牙模块、usb 网卡或者 usb 摄像头等。下面使用一个 U 盘作为例子,插到任意一个 USB Host 接口,会打印出如下设备信息:通过打印的设备信息可知,系统为该 usb 存储设备创建的设备节点为 /dev/sda。一般来说/dev/sda 对应整个U盘,/dev/sda1 对应该 U盘的第 1 个分区,/dev/sda2 对应第原创 2020-10-09 14:23:27 · 4899 阅读 · 4 评论 -
stm32mp157开发板网卡接口测试
4.1 有线网卡接口测试此节演示在串口终端下如何设置开发板的 ip 地址,测试网络的连通性。注意:既然是在开发板和电脑之间测试网络,那双方需要有网络连接。两者之间需要有一个路由器,开发板通过网线与路由器连接。而电脑与路由器之间,可以使用网线连接,也可以使用 WIFI 连接。注意:如果要测试全功能版的 2 个网卡,先测一个网卡,然后把它的网线取下来;再接网线到第 2 个网卡并测试。通过 ifconfig 命令查看 ip 地址:通过上图可知,开发板已经自动获得 IP 地址 192.168.1.1原创 2020-09-29 16:48:06 · 3310 阅读 · 2 评论 -
开发板的第 1 个驱动程序
9.1 前提请按前面第七章使用 GIT 下载源码、使用 repo 下载工具链,并配置了交叉编译工具链。为什么编译驱动程序之前要先编译内核?① 驱动程序要用到内核文件:比如驱动程序中这样包含头文件:#include <asm/io.h>,其中的 asm 是一个链接文件,指向 asm-arm或 asm-mips,这需要先配置、编译内核才会生成 asm 这个链接文件。② 编译驱动时用的内核、开发板上运行到内核,要一致:开发板上运行到内核是出厂时烧录的,你编译驱动时用到内核是你自己编译的,这原创 2020-09-27 18:57:37 · 2621 阅读 · 0 评论 -
使用 Source Insight 阅读 Linux 内核源码
在后面开发驱动程序时,驱动程序中用到的函数都是来自内核,所以可以先在 Windows 下创建内核的Source Insight 工程。如果你不想学习驱动开发,那么可以不创建内核的工程。但是以后学习大型 APP 时,也可以使用 Source Insight 来阅读、编写代码,可以借鉴本节讲解的 Source Insight 用法。7.4.1 Source Insight 简介Source Insight 是 Source Dynamics 公司出品的源代码编辑器。Source Insight 提供语法突原创 2020-09-23 09:37:40 · 7216 阅读 · 2 评论 -
Ubuntu 操作入门
3.1 Ubuntu 下打开终端我们安装的 Ubuntu 是桌面版本,这样我们可以像在 windows 系统下操作一样,相对于平时所说的 Linux命令行下操作来说,这种体验非常舒适。但是一般我们使用 Linux 都是在命令行下进行操作,所有的操作我们的都可以通过输入命令来完成,绝大多数情况下使用命令行来操作 Linux 系统比通过在 GUI 下操作的效率高很多,虽然说我们使用的 Ubuntu 是包含了 GUI 的 Linux 发行版,然而我们可以像在 windows 下那样唤出 Ubuntu 的终端,打原创 2020-09-23 08:52:24 · 1174 阅读 · 0 评论