嵌入式作业一

实验一

1. 实验环境安装

实验环境安装主要工作是完成tooltrain与实验代码的安装下载

工具链下载

首先下载并解压交叉编译器:

git clone https://github.com/friendlyarm/prebuilts.git -b master --depth 1
cd prebuilts/gcc-x64
cat toolchain-4.9.3-armhf.tar.gz* | sudo tar xz -C /

然后将编译器的路径加入到PATH中,使用命令vim ~/.bashrc打开系统环境配置文件,然后再末尾加上

export PATH=/opt/FriendlyARM/toolchain/4.9.3/bin:$PATH
export GCC_COLORS=auto

之后执行命令. ~/.bashrc让其生效。
安装配置完成后可以使用arm-linux-gcc -v来检查安装是否成功。
若出现类似下列代码则安装成功:

Using built-in specs.
COLLECT_GCC=arm-linux-gcc
COLLECT_LTO_WRAPPER=/opt/FriendlyARM/toolchain/4.9.3/libexec/gcc/arm-cortexa9-linux-gnueabihf/4.9.3/lto-wrapper
Target: arm-cortexa9-linux-gnueabihf
Configured with: /work/toolchain/build/src/gcc-4.9.3/configure --build=x86_64-build_pc-linux-gnu
--host=x86_64-build_pc-linux-gnu --target=arm-cortexa9-linux-gnueabihf --prefix=/opt/FriendlyARM/toolchain/4.9.3
--with-sysroot=/opt/FriendlyARM/toolchain/4.9.3/arm-cortexa9-linux-gnueabihf/sys-root --enable-languages=c,c++
--with-arch=armv7-a --with-tune=cortex-a9 --with-fpu=vfpv3 --with-float=hard
...
Thread model: posix
gcc version 4.9.3 (ctng-1.21.0-229g-FA)
实验代码下载

使用下列命令下载实验代码:

git clone https://github.com/friendlyarm/linux.git -b nanopi2-v4.4.y --depth 1
cd linux

编译ubuntu内核的命令:

touch .scmversion
make ARCH=arm nanopi2_linux_defconfig
make ARCH=arm

2. 内核的配置与编译

内核配置:

使用命令make menuconfig打开以下界面即可对内核进行配置。

嵌入式作业一

内核编译

使用上面所说的内核编译指令即可对内核进行编译,编译完成后新生成的内核为arch/arm/boot/zImage。嵌入式作业一

修改内核配置文件(Kconfig)实验:将外部驱动代码纳入核心一起编译

  1. /linux/drivers目录下建立一个“drivertest”文件夹并设计驱动源程序driver_kernel.c。
  2. /linux/drivers/drivertest目录下建立新的配置文件Kconfig与工程管理Makefile文件。
  3. 在新建的Makefile文件中写下
#
#Makefile for the Driver-myalloc
#


obj-$(CONFIG_DRIVER_VMALLOC)  += driver_kernel.o
  1. 在新创建的Kconfig文件中写下:
#
# DRIVER test subsystem configuration
#

menu "DRIVER  KMALLOC support"
	config DRIVER_VMALLOC
	tristate "Driver_test is supported"
	---help---
	Driver_test use vmalloc
endmenu
  1. 把driver_kernel.c 新创建的Makefile 新创建的Kconfig 都放在/linux/drivers/drivertest/目录下
  2. 修改/drivers/Kconfig,在其中增加source "drivers/drivertest/Kconfig"
  3. 修改/drivers/Makefile在其中加入obj-$(CONFIG_DRIVER_VMALLOC) += drivertest
  4. 使用make menuconfig命令,Device drivers->DRIVER KMALLOC support->Driver_test is supported,使用空格键直到*出现。

嵌入式作业一
最后,重新编译内核:
嵌入式作业一
表示在编译时加入了新的驱动。
最后编译成功嵌入式作业一

上一篇:intellij无法配置GOROOT的问题


下一篇:Clion源码编辑器的学习与实践