海纳网站建设,成品网站w灬源码火龙果,如何使用c 进行网站开发,做网站找那家公司好目录 前沿
Ubuntu 和 Windows 文件互传
Ubuntu 下 NFS 和 SSH 服务开启 Ubuntu 交叉编译工具链安装
Source Insight 软件安装和使用
Visual Studio Code 软件的安装和使用 前沿
为什么我们要学习裸机开发呢#xff1f; 1、裸机开发是了解所使用的 CPU 最直接、最简单的方…目录 前沿
Ubuntu 和 Windows 文件互传
Ubuntu 下 NFS 和 SSH 服务开启 Ubuntu 交叉编译工具链安装
Source Insight 软件安装和使用
Visual Studio Code 软件的安装和使用 前沿
为什么我们要学习裸机开发呢 1、裸机开发是了解所使用的 CPU 最直接、最简单的方法比如使用的 I.MX6U跟STM32 一样裸机开发是直接操作 CPU 的寄存器。Linux 驱动开发最终也是操作的寄存器但是在操作寄存器之前要先编写一个符合 Linux 驱动的框架。同样一个点灯驱动裸机可能只需要十几行代码但是 Linux 下的驱动就需要几十行代码。 2、大部分 Linux 驱动初学者都是从 STM32 转过来的Linux 驱动开发和 STM32 开发区别很大比如 Linux 没有 MDK、IAR 这样的集成开发环境需要我们自己在 Ubuntu 下搭建交叉编译环境。 3、裸机开发是连接 Cortex-M如 STM32单片机和 Cortex-A(如 I.MX6U)处理器的桥梁。 要进行裸机开发肯定要先搭建好开发环境我们在开始学习 STM32 的时候肯定需要安装一堆的软件比如 MDK、IAR、串口调试助手等等这个就是 STM32 的开发环境搭建。同样的要想在 Ubuntu 下进行 Cortex-A(I.MX6U)开发也需要安装一些软件进行开发环境的搭建环境搭建好以后我们就可以进行开发了。环境搭建分为 Ubuntu 和 Windows因为我们最熟悉 Windows所以代码编写、查找资料啥的肯定是在 Windows 下进行的。但是 Linux 开发又必须在 Ubuntu 下进行所以还需要搭建 Ubuntu 下的开发环境主要是交叉编译器的安装所以接下来分为Ubuntu 和 Windows介绍这两种系统下环境的搭建。
Ubuntu 和 Windows 文件互传 在开发的过程中会频繁的在 Windows 和 Ubuntu 下进行文件传输比如在 Windwos 下进行代码编写然后将编写好的代码拿到 Ubuntu 下进行编译。Windows 和 Ubuntu 下的文件互传我们需要使用 FTP 服务设置方法如下
1.开启Ubuntu下的FTP服务
打开 Ubuntu 的终端窗口然后执行如下命令来安装 FTP 服务
sudo apt-get install vsftpd等待软件自动安装安装完成以后使用 VI 命令打开/etc/vsftpd.conf命令如下
sudo vi/etc/vsftpd.conf打开 vsftpd.conf 文件以后找到如下两行
local_enableYES
write_enableYES
确保上面两行前面没有“#”有的话就取消掉完成以后如图 下所示 修改完 vsftpd.conf 以后保存退出使用如下命令重启 FTP 服务
sudo /etc/init.d/vsftpd restart
2、Windows下FTP客户端安装
Windows 下 FTP 客户端我们使用 FileZilla这是个免费的 FTP 客户端软件可以在 FileZilla 官网下载下载地址如下https://www.filezilla.cn/download下载界面如下图所示 打开 FileZilla 软件界面如下图所示 3、FileZilla 软件设置 Ubuntu 作为 FTP 服务器FileZilla 作为 FTP 客户端客户端肯定要连接到服务器上打开站点管理器点击文件-站点管理器打开以后如下图所示 点击图中的“新站点(N)”按钮来创建站点新建站点以后就会在“我的站点”下出现新建的这个站点站点的名称可以自行修改比如我将新的站点命名为“Ubuntu”如下图所示 选中新创建的“Ubuntu”站点然后对站点的“常规”进行设置设置如下图所示 按照上图中设置好以后点击“连接”按钮第一次连接可能会弹出提示是否保存密码的对话框点击确定即可。连接成功以后如下图所示 连接成功以后如图上图所示其中左边就是 Windows 文件目录右边是 Ubuntu 文件目录默认进入用户根目录下比如我电脑的“/home/zhangyu”。但是注意观察在图上中Ubuntu 文件目录下的中文目录都是乱码的这是因为编码方式没有选对先断开连接点击服务器(S)-断开连接然后打开站点管理器选中要设置的站点“Ubuntu”选择“字符集”如下图所示 按照上图设置好字符集以后重新连接到 FTP 服务器上重新链接到 FTP 服务器以后Ubuntu 下的文件目录中文显示就正常了如下图所示 如果要将 Windows 下的文件或文件夹拷贝到 Ubuntu 中只需要在上图中左侧的Windows 区域选中要拷贝的文件或者文件夹然后直接拖到右侧的 Ubuntu 中指定的目录即可。将 Ubuntu 中的文件或者文件夹拷贝到 Windows 中也是直接拖放。
Ubuntu 下 NFS 和 SSH 服务开启
1.NFS 服务开启 后面进行 Linux 驱动开发的时候需要 NFS 启动因此要先安装并开启 Ubuntu 中的 NFS服务使用如下命令安装 NFS 服务
sudo apt-get install nfs-kernel-server rpcbind 等待安装完成安装完成以后在用户根目录下创建一个名为“linux”的文件夹以后所有的东西都放到这个“linux”文件夹里面在“linux”文件夹里面新建一个名为“nfs”的文件夹如下图所示 上图中创建的 nfs 文件夹供 nfs 服务器使用以后我们可以在开发板上通过网络文件系统来访问 nfs 文件夹要先配置 nfs使用如下命令打开 nfs 配置文件/etc/exports
sudo vi/etc/exports 重启 NFS 服务使用命令如下
sudo /etc/init.d/nfs-kernel-server restart
SSH 服务开启 开启 Ubuntu 的 SSH 服务以后我们就可以在 Windwos 下使用终端软件登陆到 Ubuntu比如使用 SecureCRTUbuntu 下使用如下命令开启 SSH 服务
sudo apt-get install openssh-server上述命令安装 ssh 服务ssh 的配置文件为/etc/ssh/sshd_config使用默认配置即可。 Ubuntu 交叉编译工具链安装
1.交叉编译器安装 ARM 裸机、Uboot 移植、Linux 移植这些都需要在 Ubuntu 下进行编译编译就需要编译器我们在前边文章Ubuntu下Linux C编程里面已经介绍了如何在 Liux 进行 C 语言开发里面使用 GCC 编译器进行代码编译但是 Ubuntu 自带的 gcc 编译器是针对 X86 架构的而我们现在要编译的是 ARM 架构的代码所以我们需要一个在 X86 架构的 PC 上运行可以编译 ARM 架构代码的 GCC 编译器这个编译器就叫做交叉编译器总结一下交叉编译器就是
它肯定是一个 GCC 编译器。这个 GCC 编译器是运行在 X86 架构的 PC 上的。这个 GCC 编译器是编译 ARM 架构代码的也就是编译出来的可执行文件是在 ARM 芯片上运行的。交叉编译器中“交叉”的意思就是在一个架构上编译另外一个架构的代码相当于两种架构“交叉”起来了。 交叉编译器有很多种我们使用 Linaro 出品的交叉编译器Linaro 是一间非营利性质的开放源代码软件工程公司Linaro 开发了很多软件最著名的就是 Linaro GCC 编译工具链(编译器)关于 Linaro 详细的介绍可以到 Linaro 官网查阅。Linaro GCC 编译器下载地址如下 https://releases.linaro.org/components/toolchain/binaries/4.9-2017.01/arm-linux-gnueabihf/
打开以后的界面如下图所示 在上图中有很多种交叉编译器我们只需要关注这两种: gcc-linaro-4.9.4-2017.01-i686_arm-linux-gnueabihf.tar.tar.xz 和 gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz第一个是针对 32 位系统的第二个是针对 64 位系统的。根据自己所使用的 Ubuntu 系统类型选择合适的版本比如我安装的 Ubuntu 16.04 是 64 位系统因此我要使用 gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz。 我们要先将交叉编译工具拷贝到 Ubuntu 中在上边我们在当前用户根目录下创建了一个名为“linux”的文件夹在这个 linux 文件夹里面再创建一个名为“tool”的文件夹用来存放一些开发工具。使用前面已经安装好的 FileZilla 将交叉编译器拷贝到 Ubuntu 中刚刚新建的“tool”文件夹中操作如下图所示且成功完成的话FileZilla会有提示。 在 Ubuntu 中创建目录/usr/local/arm,命令如下
sudo mkdir /usr/local/arm 创建完成以后将刚刚拷贝的交叉编译器复制到/usr/local/arm 这个目录中在终端使用命令“ cd” 进入 到 存放 有交 叉编 译 器的 目录 比如我前面将交叉编译器拷贝到了目录“/home/zuozhongkai/linux/tool”中然后使用如下命令将交叉编译器复制到/usr/local/arm 中
sudo cp gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz /usr/local/arm/ -f操作如下图所示 拷贝完成以后在/usr/local/arm 目录中对交叉编译工具进行解压解压命令如下
sudo tar -vxf gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz 等待解压完成解压完成以后会生成一个名为“gcc-linaro-4.9.4-2017.01-x86_64_arm-linuxgnueabihf”的文件夹这个文件夹里面就是我们的交叉编译工具链。 修改环境变量使用 VI 打开/etc/profile 文件命令如下
sudo vi /etc/profile 打开/etc/profile 以后在最后面输入如下所示内容
export PATH$PATH:/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin 添加完以后的/etc/profile如下图所示 修改好以后就保存退出重启 Ubuntu 系统交叉编译工具链(编译器)就安装成功了。
2.安装相关的库 在使用交叉编译器之前还需要安装一下其它的库命令如下
sudo apt-get install lsb-core lib32stdc6 等待这些库安装完成
3.交叉编译器验证 首先查看一下交叉编译工具的版本号输入如下命令
arm-linux-gnueabihf-gcc -v 如果交叉编译器安装正确的话就会显示版本号如下图所示 从上图中可以看出当前交叉编译器的版本号为 4.9.4说明交叉编译工具链安装成功。在前边的介绍中我们使用 Ubuntu 自带的 GCC 编译器我们用的是命令“gcc”。要使用刚刚安装的交叉编译器的时候使用的命令是“arm-linux-gnueabihf-gcc”“arm-linux-gnueabihfgcc”的含义如下
arm 表示这是编译 arm 架构代码的编译器。linux 表示运行在 linux 环境下。gnueabihf 表示嵌入式二进制接口。gcc 表示是 gcc 工具。最好的验证方法就是直接编译一个例程我们就编译第一个裸机例程“1_leds”试试在前面创建的 linux 文件夹下创建 driver/board_driver 文件夹用来存放裸机例程如图下图所示 将第一个裸机例程“1_leds”拷贝到 board_driver 中然后执行 make 命令进行编译如下图所示 从上图中可以看到例程“1_leds”编译成功了编译生成了 led.o 和 led.bin 这两个文件使用如下命令查看 led.o 文件信息
file led.o 结果如下图所示 从上图中可以看到 led.o 是 32 位 LSB 的 ELF 格式文件目标机架构为 ARM说明我们的交叉编译器工作正常。
Source Insight 软件安装和使用 由于这个软件是付费的所以我不太喜欢用这个软件开发先介绍一下下我在开发过程中还是喜欢用Visual Studio Code.
1. Source Insight 安装 Source Inisght 是一款功能强大的代码编辑、阅读工具工作在 Windows 下我们可以Source Insight来进行代码编写和阅读编写完成以后将代码拷贝到 Ubuntu中去编译即可。SourceInsight 下载地址为https://www.sourceinsight.com/download/如下图所示 双击“sourceinsight4086-setup.exe”即可开始安装首先是如下图所示欢迎界面 点击上图所示的“Next”按钮进入下一步如下图所示 选择上图中的“I accept the terms in the license adreement”然后点击“Next”按钮进入安装目录选择界面根据自己的实际情况选择合适的安装目录如下图所示 选择好安装目录以后点击“Next”按钮进入图 4.4.1.5 所示的准备安装界面 点击上图中的“Install”按钮开始安装等待安装完成安装完成以后如下图所示 点击上图中的“Finish”按钮退出安装安装成功以后会在桌面上出现 Source Insight4.0 的图标如下图所示 双击图标打开 Source Inisght 4.0第一次打开的话会有 Licese 提示因为 Source Insight 4.0 是个收费软件所以是需要购买 License 的如果没有购买的话可以免费体验 30 天如下图所示 在上图中如果你已经购买了 licese 那么就选择第一个如果没有购买 licese 的话就选择第二个免费体验 30 天选择好以后点击“Next”按钮进入下图所示界面 填写完上图中的信息然后点击“Next”填写好以后一路“Next”下去就可以了打开以后的默认界面如下图所示 至此 Source Insight 安装完成。
2. Source Insight 新建工程 跟 MDK、IAR 一样Source Insight 是需要创建工程的但是远没有 MDK 和 IAR 那么复杂先新建一个工程文件夹 比如 testtest 用来存放工程所有文件包括 Source Insight 工程文件和 C 语言源码文件。 注意Source Insight 的工程不能有中文路径
Visual Studio Code 软件的安装和使用
1.Visual Studio Code 的安装 Visual Stuio Code 和 Source Insight 一样都是编辑器Visual Studio Sode 本教程以后就简称为 VSCodeVSCode 是微软出的一款编辑器但是免费的。VSCode 有 Windows、Linux 和macOS 三个版本的是一个跨平台的编辑器。VSCode 下载地是https://code.visualstudio.com/下载界面如下图所示 在上图中下载自己想要的版本本教程需要 Windows 和 Linux 这两个版本所以下载这两个即可。
Windows 版本安装傻瓜式安装 Windows 版本的安装和容易和其他 Windows 一样双击.exe 安装包然后一路“下一步”即 可安装完成以后在桌面上就会有 VSCode 的图标如下图所示 双击图上图打开 VSCode默认界面如下图所示 Linux 版本安装 我们有时候也需要在 Ubuntu 下阅读代码所以还需要在 Ubuntu 下安装 VSCode。然后我们使用如下命令进行安装
sudo dpkg -i code_1.32.3-1552606978_amd64.deb 等待安装完成如下图所示 2. Visual Studio Code 插件的安装 VSCode 支持多种语言比如 C/C、Python、C#等等本教程我们主要用来编写 C/C称序的所以需要安装 C/C的扩展包扩展包安装很简单如下图所示 我们需要按照的插件有下面几个
1)、C/C这个肯定是必须的。2)、C/C Snippets即 C/C重用代码块。3)、C/C Advanced Lint,即 C/C静态检测 。4)、Code Runner即代码运行。5)、Include AutoComplete即自动头文件包含。6)、Rainbow Brackets彩虹花括号有助于阅读代码。7)、One Dark ProVSCode 的主题。8)、GBKtoUTF8将 GBK 转换为 UTF8。9)、ARM即支持 ARM 汇编语法高亮显示。10)、Chinese(Simplified)即中文环境。11)、vscode-iconsVSCode 图标插件主要是资源管理器下各个文件夹的图标。12)、compareit比较插件可以用于比较两个文件的差异。13)、DeviceTree设备树语法插件。14)、TabNine一款 AI 自动补全插件强烈推荐谁用谁知道如果想要查看已经安装好的插件可以按照下图的方法进行查看 安装好插件以后就可以进行代码编辑了截至目前VSCode 界面都是英文环境我们已经安装了中文插件了最后将 VSCode 改为中文环境按下“CtrlShiftP”打开搜索框在搜索框里面输入“config”然后选择“Configure Display Language”。如下图所示 在打开的 local.json 文件中将 locale 修改为 zh-cn如图下图所示 修改完成以后保存 local.json然后重新打开 VSCode测试 VSCode 就变成了中文的了如下图所示 3.Visual Studio Code 新建工程 新建一个文件夹用于存放工程比如我新建的文件夹目录为 E:\VScode_Program\1_test路径尽量不要有中文和空格。打开 VSCode然后在 VSCode 上点击文件-打开文件夹…选刚刚 创建的“test”文件夹打开以后如下图所示 从上图可以看出此时的文件夹“TEST”是空的点击文件-将工作区另存为…打开工作区命名对话框输入要保存的工作区路径和工作区名字如下图所示 工作区保存成功以后点击图上图中的“新建文件”按钮创建 main.c 和 main.h 这两个文件创建成功以后 VSCode 如下图所示 从下图可以看出此时“实验 TEST”中有main.c 和 main.h这三个文件和文件夹同样会出现在“实验TEST文件夹中如下图所示 在main.h中输入如下所示内容
# includestdio.hint add(int a, int b) 在main.c中输入如下所示内容
# include main.hint add(int a, int b){return (ab);}int main(void)
{int value 0;value add(5,6);printf(5 6 %d, value);return 0;} 代码编辑完成以后VSCode 界面如图所示 从上图可以看出VSCode 的编辑的代码高亮很漂亮阅读起来很舒服。但是此时提示找不到“stdio.h”这个头文件如下图所示错误提示 在上图中提示找不到“main.h”同样的在 main.h 文件中会提示找不到“stdio.h”。这是因为我们没有添加头文件路径。按下“CtrlShiftP”打开搜索框然后输入“Edit configurations”选择“C/C:Edit configurations…” C/C的配置文件是个 json 文件名为c_cpp_properties.json此文件默认内容如下图所示 c_cpp_properties.json 中的变量“includePath”用于指定工程中的头文件路径但是“stdio.h”是 C 语言库文件而 VSCode 只是个编辑器没有编译器所以肯定是没有 stdio.h 的除非我们自行安装一个编译器比如 CygWin然后在 includePath 中添加编译器的头文件。这里我们就不添加了因为我们不会使用 VSCode 来编译程序这里主要知道如何指定头文件路径就可以了。 我们在 VScode 上打开一个新文件的话会覆盖掉以前的文件这是因为 VSCode 默认开启了预览模式预览模式下单击左侧的文件就会覆盖掉当前的打开的文件。如果不想覆盖的话采用双击打开即可或者设置 VSCode 关闭预览模式设置如下图所示 我们在编写代码的时候有时候会在右下角有如下图所示的警告提示 这是因为插件 C/C Lint 打开了几个功能我们将其关闭就可以了顺便也可以学习一下VSCode 插件配置方法 如下图所示 在 C/C Lint 配置界面上找到 CLang:Enable、Cppcheck:Enable、Flexlint:Enable 这个三个然后取消掉勾选即可下图所示 按照上图所示取消这三个有关 C/C Lint 的配置以后就不会有图所示的错误提示了。但是关闭 Cppcheck:Enable 以后 VSCode 就不能实时检查错误了大家根据实际情况选择即可。