第9章嵌入式Linux RK3399开发环境构建.pptx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《第9章嵌入式Linux RK3399开发环境构建.pptx》由会员分享,可在线阅读,更多相关《第9章嵌入式Linux RK3399开发环境构建.pptx(41页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、嵌入式系统设计原理嵌入式Linux系统软件部署实验主讲人:赖树明东莞理工学院01嵌入式Linux硬件平台搭建02课程作业0101嵌入式Linux硬件平台搭建U-Boot移植 RootFS根文件系统ARM编译器安装linux内核移植 RK3399 固件烧录Linux系统硬件平台搭建ARM编译器安装01n在线快速安装:终端输入命令:sudo apt install gcc-aarch64-linux-gnu 安装,可以省后面配置环境变量的步骤,但是编译器的版本不一定有你需要的,因此,后面学习自己安装,学习配置环境变量。Linux历史在线安装Arm编译器编译器下载 地址:https:/release
2、s.linaro.org/components/toolchain/binaries/在该网站上可以下载到当前各种版本的ARM编译器,本书选择7.3-2018.05 版本,点击进入内部下载页面下载ARM编译器Linux系统硬件平台搭建ARM编译器安装01Linux历史下载ARM编译器本书选择 aarch64-linux-gnu,点击进入内部下载页面点击后在弹出的页面中点击 gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu.tar.xz 即可下载到编译工具包。Linux系统硬件平台搭建ARM编译器安装01Arm linux编译器:6.软件工具/g
3、cc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu.tar.xzLinux历史ARM Linux 编译器安装1.复制到Linux系统解压$sudo tar-xf gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu.tar.xz-C/usr/2.把编译器所在目录添加到添加系统环境变量中修改/.bashrc 文件,在文件最后添加以下代码:导出编译器所在目录,export PATH=/usr/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin:$PAT
4、H3.让环境变量生效1)方法一:重启或注销系统2)方法二:关当前终端,重新开一个终端3)方法三:当前终端输入 source/.bashrc 命令。4.查看编译器版本信息$aarch64-linux-gnu-gcc-vLinux系统硬件平台搭建U-Boot、linux内核移植 01Bootloader+linux kernel +rootfsLinux系统组成bootloader:启动引导程序,相当于电脑主板BIOS。很多种,其中最常用 一种U-boot。linux kernel:操作系统内核,可以和Windows操作系统内核类比,linux系统核心功能rootfs:根文件系统,可以和Windo
5、ws操作系统内核类比,Windows 安装完成后C盘的系统文件,程序文件,程序运行的库文件。它的作用存放系统运行需要各种命令以及命令运行需要各库文件,以及系统软件配置信息,软件安装信息。基本的嵌入式linux硬件平台:需要制作bootloader+linux kernel+rootfs,并且下载到开发板上,并且让它们可以相互联系.常见种类Linux系统硬件平台搭建U-Boot移植 01BootLoader描述x86ARMPowerPCLILOLinux磁盘引导程序是否否GRUBGNU的LILO替代程序是否否Loadlin从DOS引导Linux是否否ROLO从ROM引导Linux而不需要BIOS
6、是否否Etherboot通过以太网卡启动Linux系统的固件是否否LinuxBIOS完全替代BUIS的Linux引导程序是否否BLOBLART等硬件平台的引导程序否是否U-boot通用引导程序是是是RedBoot基于eCos的引导程序是是是常见Bootloader选择U-Boot的理由:开源免费;支持多种嵌入式操作系统内核,支持多个处理器系列;较高的可靠性和稳定性;高度灵活的功能设置;丰富的设备驱动源码;较为丰富的开发调试文档与强大的网络技术支持;嵌入式Linux硬件平台搭建步骤ARM Linux 编译器安装编译Uboot编译Linux内核源码制作 rootfs Linux系统硬件平台搭建U-
7、Boot移植 01下载到ARM RK3399开发板上Linux系统硬件平台搭建U-Boot移植 01B-boot官方网站:https:/www.denx.de/project/u-boot/U-boot直接下载地址:https:/ftp.denx.de/pub/u-boot/(旧下载地址)U-boot直接下载地址:https:/source.denx.de/u-boot/u-boot (新的下载地址,使用git进行管理)Linux历史U-Boot源码获得从官方网站上下载的源码中,如果没有直接支持你的开发板,则需要下载下来,再修改移植,修改工作要求开发者对目标板CPU的启动流程、时钟配置、DDR
8、时序配置等底层技术和U-Boot源码启动流程、框架等都比较熟悉,才会高效完成。一般情况下,芯片厂家本身会提供demo板,并提供配套的U-Boot,开发者为提高效率,一般都会参考官方提供的demo。Linux系统硬件平台搭建U-Boot移植 01做为底层开发者,需要对U-boot的文件结构和作用有一个认识,方便后面深入学习修改及移植。Linux历史U-Boot文件介绍序号目录特性说明1board 平台依赖存放开发板相关的目录文件2arch 构架相关存放各种芯片构架相关的文件3api通用存放U-Boot提供的接口函数4common 通用通用的代码,涵盖各个方面,以命令行处理为主5disk 通用磁盘
9、分区相关代码6lib通用存放u-boot源码中使用的库函数7nand_spl通用NAND存储器启动相关代码8include 通用头文件和开发板配置文件,所有板的配置文件都在configs目录下Linux系统硬件平台搭建U-Boot移植 01做为底层开发者,需要对U-boot的文件结构和作用有一个认识,方便后面深入学习修改及移植。Linux历史U-Boot文件介绍序号目录特性说明9common 通用通用的多功能函数实现10net 通用存放网络相关程序11fs 通用存放文件系统相关程序12post 通用存放上电自检程序13drivers 通用通用的设备驱动程序,主要的驱动是以太网接口14disk
10、通用硬盘接口程序15examples 应用例程一些独立运行的应用程序例子16tools 工具存放制作S-Record或者U-Boot等的工具Linux系统硬件平台搭建U-Boot移植 01U-Boot重点关注的文件rk平台公共配置文件:include/configs/rk_default_config.hrk33xx系列平台配置文件:include/configs/rk33plat.hrk33xx系列平台架构头文件夹:arch/arm/include/asm/arch-rk33xx/rk33xx系列平台架构文件夹,包括clock、irq、timer等实现:arch/arm/cpu/armv8/
11、rk33xx/板级平台核心文件夹,分类存放了各厂家芯片制作的各种开发板驱动文件,本书使用的开发板相关的是board/rockchip/rk33xx/文件夹:board/rockchip/rk33xx/各种接口驱动文件夹,如LCD、RTC、SPI、I2C、USB等驱动:drivers/Linux系统硬件平台搭建U-Boot移植 01编译器下载rk平台公共配置文件:include/configs/rk_default_config.hrk33xx系列平台配置文件:include/configs/rk33plat.hrk33xx系列平台架构头文件夹:arch/arm/include/asm/arch
12、-rk33xx/rk33xx系列平台架构文件夹,包括clock、irq、timer等实现:arch/arm/cpu/armv8/rk33xx/板级平台核心文件夹,分类存放了各厂家芯片制作的各种开发板驱动文件,本书使用的开发板相关的是board/rockchip/rk33xx/文件夹:board/rockchip/rk33xx/各种接口驱动文件夹,如LCD、RTC、SPI、I2C、USB等驱动:drivers/Linux系统硬件平台搭建U-Boot移植 01U-Boot可以在不同硬件平台上运行,但是需要开发者根据自己的硬件进行局部代码修改,适配硬件。涉及到代码修改,对开发者技术要求就非常高了。本
13、节针对已经适配到开发板的U-Boot源码进行编译,生成二进制的BootLoader系统引导程序。U-Boot移植Linux历史U-Boot文件源码:4.示例代码sourceu-boot.tar.bz2复制 u-boot.tar.bz2 到Ubuntu系统中目录中:这里存放在 /work/nanopc-t4/system/目录 进入/work/nanopc-t4/system/执行解压命令:tar-xf u-boot.tar.bz2 命令终端进入解压后的u-boot源码目录,配置u-boot:make rk3399_linux_defconfig进入配置界面进行二次配置,并配置U-Boot子版本
14、号:make menuconfig说明:make menuconfig 会弹出图形配置界面,该图形配置界面依赖 ncurses-devel 库,如果Ubuntu 系统中还没有安装,需要先在线安装。Linux系统硬件平台搭建U-Boot移植 01U-Boot二次配置make menuconfig 后弹出右边所示的配置界面,切换到 General setup-Local version-append to U-Boot release Linux系统硬件平台搭建U-Boot移植 01U-Boot二次配置进入以下界面:General setup-Local version-append to U-B
15、oot release回车进入:输入你想要的版本号,输入完毕,回车确认。最根据界面提示退出配置界面,记得在退出过程选择保存配置。Linux系统硬件平台搭建U-Boot移植 01U-Boot可以在不同硬件平台上运行,但是需要开发者根据自己的硬件进行局部代码修改,适配硬件。涉及到代码修改,对开发者技术要求就非常高了。本节针对已经适配到开发板的U-Boot源码进行编译,生成二进制的BootLoader系统引导程序。U-Boot移植Linux历史U-Boot文件源码:4.示例代码sourceu-boot.tar.bz2复制 u-boot.tar.bz2 到Ubuntu系统中目录中:这里存放在 /wor
16、k/nanopc-t4/system/目录 进入/work/nanopc-t4/system/执行解压命令:tar-xf u-boot.tar.bz2 命令终端进入解压后的u-boot源码目录,配置u-boot:make rk3399_linux_defconfig继续上一步操作,编译u-boot:make CROSS_COMPILE=aarch64-linux-gnu-j8查看生成的二进制文件:$ls *.bin *.img rk3399_loader_v1.12.109.bin trust.img u-boot.bin uboot.img把以上文件复制到Windows 系统存放,后面需要下
17、载到开发板上。Linux系统硬件平台搭建U-Boot移植 01U-Boot版本启动延时的时间设置为1秒,启动时可能来不及按键进入命令行模式,如果需要在开发阶 段 进 入 命 令 行 模 式,可 需 要 修 改 文 件 u-boot/include/configs/rk33plat.h文 件,找 到CONFIG_BOOTDELAY宏,位置大概在202行,修改其值为想要的延时启动时间,单位是秒,#define CONFIG_BOOTDELAY 5修改延时时间Linux历史继续上一步操作,编译u-boot:make CROSS_COMPILE=aarch64-linux-gnu-j8查看生成的二进制
18、文件:$ls *.bin *.img rk3399_loader_v1.12.109.bin trust.img u-boot.bin uboot.img把以上文件复制到Windows 系统存放,后面需要下载到开发板上。编译U-BootLinux系统硬件平台搭建Linux内核移植 01Linux内核官方网址:https:/www.kernel.org/首页上可以下载到是新版本的源码。所在已经发布版本的源码下载地址:https:/mirrors.edge.kernel.org/pub/linux/kernel/Linux内核源码获得官方网站上下载的内核不一定完全支持你的需求,一般都需要移植以适配
19、你的开发板,其中涉及到要修改的内容非常多,技术要求很高。因此,为了提高开发效率,直接下载芯片公司和开发板公司提供配套的Linux内核源码,再进行二次开发。Linux系统硬件平台搭建Linux内核移植 01Linux内核官方网址:https:/www.kernel.org/首页上可以下载到是新版本的源码。所在已经发布版本的源码下载地址:https:/mirrors.edge.kernel.org/pub/linux/kernel/Linux内核源码获得官方网站上下载的内核不一定完全支持你的需求,一般都需要移植以适配你的开发板,其中涉及到要修改的内容非常多,技术要求很高。因此,为了提高开发效率,直
20、接下载芯片公司或开发板公司提供配套的Linux内核源码,再进行二次开发。本书配套Linux内核文件源码:4.示例代码sourcekernel-rockchip-nanopi4-4.4.y.tgz复制 Linux内核到Ubuntu系统中目录中:这里存放在 /work/nanopc-t4/system/目录 进入/work/nanopc-t4/system/执行解压命令:tar-xf kernel-rockchip-nanopi4-4.4.y.tgz进入解压后的linux源码目录:cd kernel-rockchip/加载开发板对应的基础配置:make ARCH=arm64 xyd_rk3399_
21、linux_defconfigLinux系统硬件平台搭建Linux内核移植 01Linux内核源码顶层目录序号名称说明1fs内核支持文件系统代码2security主要包含SELinux(Security-Enhanced Linux)模块,SELinux是美国国家安全局(NSA)对于强制访问控制的实现,是Linux历史上最杰出的新安全子系统3block块设备I/O调度支持代码,如SD卡等设备4include 包括编译核心所需要的大部分头文件,例如与平台无关的头文件在include/linux子目录下,include/scsi目录则是有关scsi设备的头文件目录5Makefile这个Makefi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第9章 嵌入式Linux RK3399开发环境构建 嵌入式 Linux RK3399 开发 环境 构建
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内