Skip to content

Latest commit

 

History

History
151 lines (95 loc) · 4.06 KB

File metadata and controls

151 lines (95 loc) · 4.06 KB

p7

野火提供两个开发板,ALPHA和 Mini。

ALPHA例程比较多且完善。

p45-p46 前言

学习linux驱动开发前最好会一些cortex-m核的开发

为什么选择imx6ul这个芯片学习

学习顺序为:ubuntu系统,裸机例程,系统移植,驱动开发(重点)

p46 第一篇

详细学习ubuntu系统,《鸟哥linux私房菜》

p47-p80 ubuntu系统安装

安装虚拟机

安装ubuntu16系统

p81-p135 ubuntu系统入门

参考《Ubuntu Linux从入门到精通》

终端中提示符含义:zuozhongkai@zuozhongkai-virtual-machine: ~$

shell是什么?一个应用程序,接收用户输入,传递给内核,接收内核输出,反馈给用户。

命令格式:command -option [argument]

常用命令:ls, cd, pwd, uname, clear, sudo, su, cat, ifconfig, man, reboot, poweroff,

apt下载工具,更换源文件????

编辑工具:gedit, vim, vscode

vim常用命令:nG光标移动到第n行首,ctrl+f下一页,ctrl+b上一页,dd删除整行,nyy复制当前行及下面n行,P粘贴,/查找

文件系统:实现数据的查询和存储。格式化就是创建文件系统的过程。linux下需要通过mount到具体目录来挂载磁盘,才能访问磁盘。

df -Th查看文件系统类型

文件操作常用命令:touch, mkdir, rm, rmdir, cp, mv, chmod, chown

文件压缩: zip -r xxx.zip xxx/ tar -cjf xxx.tar.bz2 xxx/ tar -czf xxx.tar.gz xxx/

文件解压: unzip xxx.zip tar -xjf xxx.tar.bz2 xxx/ tar -xzf xxx.tar.gz xxx/

文件查询: find [路径] [参数] [关键字] grep -ir [关键字] [文件列表]

文件权限rwx

磁盘管理: fdisk /dev/sdx mkfs [参数] [-t 类型] [/dev/sdxx] mount [参数] [-t 类型] [/dev/sdxx] [挂载点] umount [参数] [-t 类型] [/dev/sdxx]

p136-p linux c编程

vim默认tab是8个空格,改成4个,/etc/vim/vimrc添加set ts=4

vim默认不显示行号,/etc/vim/vimrc添加set nu

vim使用空格代替tab,/etc/vim/vimrc添加set noexpandtab

编译代码:gcc xxx.c -o xxx -c 只编译 -o 输出文件名称 -g 添加调试信息 -O 编译器优化程度

Makefile 1.如果工程没有被编译过,工程中所有文件都被编译并链接成可执行程序 2.如果工程中只有个别c文件被修改,只编译这些被修改的 3.如果头文件被修改,编译所有引用这个头文件的c文件,并链接成可执行程序

Makefile语法:有一系列规则组成,规则格式如下,只能使用tab,不能用空格 目标...: 依赖文件集合... 命令1 命令2 ...

Makefile终极目标是第一个规则目标中的第一个,其他规则的顺序没有意义

Makefile变量赋值 = 变量的真实值取决于最后一次有效值 :=
?= 如果没有被赋值,则会赋值,否则不会被赋值 += 变量赋值的追加,空格隔开 $(xxxx) 变量的使用

模式规则: 至少在目标中要包含%,否则就是一般规则。目标中的%表示对文件名的匹配,表示任意长度的非空字符串,比如%.c就是所有的以.c结尾的文件。当目标中%所代表的值决定了依赖中的%值。

自动化变量: 是一种变量会把模式中所定义的一系列的文件自动的挨个取出,直至所有的符合模式的文件都取完,自动化变量只应该出现在规则的命令中 $@
$%
$< 依赖文件集合中的第一个文件,如果依赖文件是%定义,则是符合模式的一系列文件集合 $?
$^
$+
$*

伪目标:防止目录下存在与目标同名文件 .PHONY: clean

条件判断: ifeq(参数1, 参数2) xxxx else xxxx endif

ifdef 变量名 ifndef 变量名

Makefile函数:不支持自定义,用法 $(函数名 参数集合) ${函数名 参数集合}

字符串替换函数 ${subst , , } 如$(subst zzk,ZZK,my name is zzk) 把zzk替换成ZZK 模式字符串替换 $(patsubst , , ) $(patsubst %.c,%.o,a.c b.c c.c) 把a.c b.c c.c中.c替换成.o 获取目录 提取文件名 循环