公众号
欢迎扫码关注本人微信公众号:公众号上分享更多嵌入式知识和资料,分享个人学习嵌入式的心得体会。欢迎大家一起来玩呀。
esp8266教程:编译sdk常用命令
esp8266的开发环境是使用msys+mingw32的开发环境,和我们之前开发STM32使用keil有一点差别,可能以前keil开发的程序员有一点小小的生疏感,因为在命令行上编译没有好看的IDE界面,但是转变过来其实不难的,我们要学习的也就几个linux的常用命令(对于linux下的开发者下面就无需看了),我们只需要学习的命令有cd、pwd、mkdir、ls、make。
为什么要在命令行上开发?
程序员天生就是一个热爱学习的群体,现在慢慢不只是linux是要使用命令行开发了,现在很多的MCU也有要使用命令行下进行编译了,比如我最近看到的国产芯片厂商炬芯、杰里等编译环境都是使用命令行,所以各位程序员们,如果你还没有使用过在命令行下编译单片机软件,现在学习一下也是很好的机会,而且我们现在需要的学习的只是几个命令而已,非常简单,千万别看到这里看到是命令行就退缩哦,我没有学习linux下命令行开发之前也以为是很难,但是学过之后发现长用的也就那么几个命令。多用就记住了,不需要死记硬背,如果你忘了某个命令了怎么办?没关系,我们去百度查,去手册查,如果说你没有记住那个命令只能证明一件事,这个命令不常用,并不是你笨。因为人是有一个记忆力曲线的,只要不常用的东西一定就会忘记的,我也经常忘记,但是我只要上网一查就知道怎么用了。授人以鱼不如授人以渔,我想教大家的是方法,或者说解决问题的方法,而不是死记硬背。
1、cd(英文全拼:change directory)
切换用户当前工作目录。
概要
cd [-L|[-P [-e]]] [dir]
主要用途
- 切换工作目录至dir。其中dir的表示法可以是绝对路径或相对路径。
- 若参数dir省略,则默认为使用者的shell变量HOME。
- 如果dir指定为~时表示为使用者的shell变量HOME,.表示当前目录,…表示当前目录的上一级目录。
- 环境变量CDPATH是由冒号分割的一到多个目录,你可以将常去的目录的上一级加入到CDPATH以便方便访问它们;如果dir以/开头那么CDPATH不会被使用。
- 当shopt选项cdable_vars打开时,如果dir在CDPATH及当前目录下均不存在,那么会把它当作变量,读取它的值作为要进入的目录。
例子
cd # 进入用户主目录;
cd / # 进入根目录
cd ~ # 进入用户主目录;
cd .. # 返回上级目录(若当前目录为“/“,则执行完后还在“/";".."为上级目录的意思);
cd ../.. # 返回上两级目录;
cd !$ # 把上个命令的参数作为cd参数使用。
2、pwd(英文全拼:print work directory)
Linux pwd(英文全拼:print work directory) 命令用于显示工作目录。
执行 pwd 指令可立刻得知您目前所在的工作目录的绝对路径名称。
3、mkdir(英文全拼:make directory)命令用于创建目录。
Linux mkdir(英文全拼:make directory)命令用于创建目录。
参数
目录:指定要创建的目录列表,多个目录之间用空格隔开。
实例
在目录/usr/meng下建立子目录test,并且只有文件主有读、写和执行权限,其他人无权访问。
用法1:在当前文件夹下创建目录test
mkdir test
用法2:创建递归目录/usr/meng/test
mkdir -m 700 /usr/meng/test
4、ls
Linux ls(英文全拼:list files)命令用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录)。
参数
目录:指定要显示列表的目录,也可以是具体的文件。
实例
$ ls # 仅列出当前目录可见文件
$ ls -l # 列出当前目录可见文件详细信息
$ ls -hl # 列出详细信息并以可读大小显示文件大小
$ ls -al # 列出所有文件(包括隐藏)的详细信息
$ ls --human-readable --size -1 -S --classify # 按文件大小排序
$ du -sh * | sort -h # 按文件大小排序(同上)
5、make
make 编译sdk的命令make xxx,make是命令,xxx是参数。运行make的时候,make会在当前文件夹下查找一个makefile的东西,然后根据makefile脚本将sdk进行编译,我们常用的keil按下make这个图标的时候背后也是运行一些脚本文件,然后转换成makefile最后编译sdk。
make menuconfig
make是命令menuconfig是参数,我们使用这个命令后会生成一个图形界面,然后可以进行条件编译,比如我们不想将某些模块编译进去,只要在界面里面选择去掉即可。所以make menuconfig的作用就是方便的让我们对需要编译的sdk进行配置一种手段。
配置完成后会在当前目录下生成一个sdkconfig这个文件
sdkconfig就是这个sdk的编译配置文件,编译脚本会根据这个配置文件生成一个头文件build\include\sdkconfig.h,sdk里面的.C文件会根据这个头文件,进行条件编译那部分的代码。
make all -j10
make是命令all和-j10是参数,all意思就是全部编译的意思,-j10就是使用10个线程去编译,加快编译的速度,如果你的CPU只有4个核心的就可以修改为-j4。
make flash
make是命令flash是参数,这个命令就是可以调用一个烧录脚本,将我们生成的固件烧录到esp8266里面去。
make monitor
make monitor这个命令可以让我们打开串口终端,其实和windows下打开串口终端查看打印信息是一样的,但是我们需要在make menuconfig进入图形界面,然后配置你接到电脑的COM口。
Serial flasher config —>
. (COM8) Default serial port
如图所示,在你的windows下的设备管理器查看你的串口的COM口是什么,然后填入到这里,我的COM是COM8。