一.多线程
1.库的安装
输入如下代码
sudo apt-get install -y glibc-doc manpages-posix-dev
sudo apt-get install manpages-posix manpages-posix-dev
2.创建线程
(1)编译程序
(2)编译执行
输入:gcc pthread.c -lpthread
./a.out
出现不想一样的结果是因为线程之间的竞争
3.进程的连接与分离
(1)编写代码
(2)编译运行
3.互斥量保护多线程同时输出
(1)编写代码(部分)
(2)编译运行
输入:gcc -o 3.out 3.c -lpthread -lm
./3.out
4.条件变量使用
(1)编写代码(部分)
(2)编译运行
1.执行任务的是线程 ,线程是进程中执行运算的最小单位,亦即执行处理机调度的基本单位。
2.易于调度。提高并发性。通过线程可方便有效地实现并发性。进程可创建多个线程来执行同一程序的不同部分。
3.资源分配不当
4.剥夺调度
二、多进程
1、获取测试环境变量
(1)编写代码
(2)编译运行(以下与上面一样方式)
(1)编写代码
(2)编译运行
3.创建进程程序
(1)编写代码
(2)编译运行
4.子程序加载
(1)编写代码
(1)编写代码
5.创建守护进程
(1)编写代码
(2)编译运行
6.信号函数
(1)编写代码
(2)编译运行
三、开发板
1.运行开发板
(1)准备好虚拟机和ubuntu系统
参考文档:https://www.csdn.net/tags/OtTaYgwsODIwOTAtYmxvZwO0O0OO0O0O.html
(2)下载QEMU
下载成功后,进入ubuntu-18.04_imx6ul_qemu_system,执行install_sdl.sh
输入:git clone https://e.coding.net/weidongshan/ubuntu-18.04_imx6ul_qemu_system.git
(3)安装
进入ubuntu-18.04_imx6ul_qemu_system
输入: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
(4)运行
在桌面环境运行,运行之后会出现BUG
输入:sudo apt --fix-broken install
重新执行
./qemu-imx6ull-gui.sh
2.下载编译内核
(1)安装lozp工具
输入:sudo apt-get install lzop
(2)下载源码
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
(3)设置工具链
cd 100ask_imx6ull-qemu/
ls
buildroot2019.02 linux-4.9.88 qemu ToolChain
(4)配置编译内核
安装编译器输入:sudo apt install gcc-arm-linux-gnueabihf
执行cd linux-4.9.88
$ make mrproper
$ make 100ask_imx6ull_qemu_defconfig
$ make zImage
把编译出来的zImage复制到QEMU目录ubuntu-18.04_imx6ul_qemu_system/imx6ull-system-image
cd ~/ubuntu-18.04_imx6ul_qemu_system/
(5)替换驱动程序
把lcd_drv.c放到内核目录linux-4.9.88/drivers/video/fbdev
修改linux-4.9.88/drivers/video/fbdev/Makefile
obj-y += 100ask_qemu_fb.o
obj-y += lcd_drv.o