一,查看源代码
线程与进程
安装pthread库
查看
2.多线程
①线程的创建与终止
函数
编译并执行
②进程的连接与分离
函数代码
编译并运行
③使用互斥量保护多线程同时输出
函数代码
编译并运行
④条件变量使用
函数代码
编译并运行
3.多进程
①获取测试环境变量代码
env
environ
②创建进程程序代码
fork函数
fork()函数从运行着的进程中分裂出一个子进程,它通过拷贝父进程的方式创建子进程。子进程与父进程有相同的代码空间、文件描述符等资源。
代码
编译运行
③子进程加载新程序代码
代码
编译运行
④使用daemon
函数代码
编译运行
⑤信号函数sigaction
函数代码
结果
二,运行开发板
准备好虚拟机和ubuntu系统,本实验版本为ubuntu18.04x64
参考文档:https://www.csdn.net/tags/OtTaYgwsODIwOTAtYmxvZwO0O0OO0O0O.html
1.下载安装
下载qemu
$ git clone https://e.coding.net/weidongshan/ubuntu-18.04_imx6ul_qemu_system.git
安装
$ cd /home/suliu/Desktop/ubuntu-18.04_imx6ul_qemu_system/
$ ls
imx6ull-system-image qemu-imx6ull-gui_test.sh source
install_sdl.sh qemu-imx6ull-nogui.sh ubuntu-18.04_sdl-package
qemu README.md
qemu-imx6ull-gui.sh rootfs_test
$ install_sdl.sh
运行
$ cd /home/suliu/Desktop/ubuntu-18.04_imx6ul_qemu_system/
$ ls
imx6ull-system-image qemu-imx6ull-gui_test.sh source
install_sdl.sh qemu-imx6ull-nogui.sh ubuntu-18.04_sdl-package
qemu README.md
qemu-imx6ull-gui.sh rootfs_test
$ ./qemu-imx6ull-gui.sh
bug
解决
$ sudo apt --fix-broken install
重新执行
./qemu-imx6ull-gui.sh
2.使用
下载编译内核
## 安装 lzop 工具,下载源码
// 先强制安装一遍依赖
$ sudo apt-get install lzop //安装软件
// 下载源码
$ git clone https://e.coding.net/codebug8/repo.git
$ mkdir -p 100ask_imx6ull-qemu && cd 100ask_imx6ull-qemu
$ ../repo/repo init -u https://e.coding.net/weidongshan/manifests.git -b linux-sdk -m imx6ull/100ask-imx6ull_qemu_release_v1.0.xml --no-repo-verify
出现
$ cd 100ask_imx6ull-qemu/
$ ls
buildroot2019.02 linux-4.9.88 qemu ToolChain
成功
设置工具链
$ export ARCH=arm
$ export CROSS_COMPILE=arm-linux-gnueabihf-
$ export PATH=$PATH:/home/book/100ask_imx6ull-qemu/ToolChain/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin
配置,编译内核
$ sudo apt install gcc-arm-linux-gnueabihf // 安装编译器
执行
$ cd linux-4.9.88
$ make mrproper
$ make 100ask_imx6ull_qemu_defconfig
$ make zImage //这一步需要等待一段时间(10mins)
把编译出来的zImage复制到QEMU目录ubuntu-18.04_imx6ul_qemu_system/imx6ull-system-image
替换lcd驱动程序
把lcd_drv.c放到内核目录linux-4.9.88/drivers/video/fbdev,修改linux-4.9.88/drivers/video/fbdev/Makefile为obj-y += lcd_drv.o。接下来,即可重新执行make zImage编译内核,内核里就含有新的驱动程序了.
测试