嵌入式Linux编程实战教程
文章目录
- 嵌入式Linux编程实战教程
- 一、课程导入
- 二、核心知识点讲解
- (一)开发板基础认知
- 本节课所用开发板说明
- 核心说明
- (二)开发板连接核心准备
- (三)开发板与电脑连接实操
- (四)完整开发环境测试
- (五)开发板基础操作
- 三、课堂示例
- 四、课后作业
- 五、本节课核心总结
- 核心知识点总结
- 学习重点与难点
- 关键词
- 六、课程回顾总结
- 上一节课作业答案:嵌入式Linux开发环境搭建 实战作业代码及说明
- (一)实战作业代码
- (二)代码功能说明
- (三)作业注意事项
一、课程导入
上一节课我们已经完成了Windows系统下的嵌入式Linux开发环境搭建,成功安装了Hyper-V虚拟机、Ubuntu系统,以及FileZilla、WindTerm两个辅助工具,确保了Ubuntu系统可正常运行、Windows与Ubuntu可实现文件传输和远程连接。
本节课作为基础入门阶段的关键实操课,核心目标是完成开发板与电脑的连接配置,搭建“电脑(Windows+Ubuntu)+开发板”的完整嵌入式Linux开发环境。开发板是嵌入式开发的核心硬件载体,后续所有的程序下载、驱动调试、项目实战,都需要通过开发板完成,因此本节课的实操质量,直接影响后续所有课程的开展,务必认真跟随操作。
二、核心知识点讲解
(一)开发板基础认知
嵌入式开发板是嵌入式Linux开发的核心硬件,本质是一块精简的“微型电脑”,集成了CPU(ARM架构,贴合嵌入式场景)、内存、存储、外设接口(GPIO、UART、USB等),是我们后续运行嵌入式程序、调试驱动的物理载体。
本节课所用开发板说明
本节课选用ARM架构开发板(全志/瑞芯微系列,适配嵌入式Linux系统),核心配置贴合入门实战需求,具备以下核心接口(后续实操重点使用):
USB接口:用于供电、数据传输,连接电脑与开发板;
串口接口(UART):用于开发板与电脑的串口通信,查看开发板启动信息、调试程序;
电源接口:备用供电(优先使用USB供电,稳定便捷);
GPIO接口:后续用于LED灯、按键等外设驱动开发(本节课暂不使用)。
核心说明
嵌入式开发板的核心优势的是“贴合实际开发场景”,其ARM架构与工业级嵌入式设备一致,后续我们在Ubuntu中编写的程序、驱动,均可下载到开发板中运行,实现“编程→下载→调试”的完整开发流程,这也是嵌入式开发“实操为王”的核心体现。
(二)开发板连接核心准备
在连接开发板前,需完成以下准备工作,确保连接顺利,避免出现识别失败、通信异常等问题:
- 硬件准备:
(1)ARM开发板1块、USB数据线1根(支持数据传输,避免仅支持充电的数据线);
(2)电脑1台(已完成第2课开发环境搭建,安装好WindTerm工具);
(3)备用电源(可选,若USB供电不稳定,可使用专用电源)。
- 软件准备:
(1)WindTerm工具(已在第2课安装,本节课重点使用其串口通信功能);
(2)USB转串口驱动(开发板串口接口需通过USB转串口连接电脑,部分电脑自带驱动,若识别失败需手动安装);
(3)开发板固件(已预烧录嵌入式Linux系统,无需学员手动烧录,后续课程会讲解固件烧录方法)。
- 前期检查:
(1)确认电脑已安装WindTerm,且可正常打开;
(2)确认USB数据线可正常传输数据(可通过连接手机测试,能识别手机存储即正常);
(3)确认开发板无硬件故障(通电后指示灯正常亮起,即说明硬件无明显问题)。
(三)开发板与电脑连接实操
本节课核心实操为“开发板与电脑的串口连接”,通过WindTerm工具实现电脑与开发板的通信,步骤详细拆解,零基础可跟随操作,全程重点关注串口配置参数,避免配置错误导致通信失败。
- 硬件连接:
(1)将USB数据线的一端插入开发板的USB接口(标注“USB-OTG”或“数据传输”的接口);
(2)将USB数据线的另一端插入电脑的USB接口,此时开发板会自动通电,指示灯亮起(若未亮起,检查数据线或USB接口);
(3)电脑会自动识别开发板,安装USB转串口驱动(若未自动安装,需手动下载对应驱动,安装后重启电脑)。
- 查看串口端口号(关键步骤):
(1)按下Win+R键,输入“devmgmt.msc”,打开“设备管理器”;
(2)在设备管理器中,找到“端口(COM和LPT)”选项,展开后会看到“USB-SERIAL CH340(COMx)”(x为数字,如COM3、COM4),这个“COMx”就是开发板对应的串口端口号,记录下来(后续配置需使用);
(3)若未找到该选项,说明驱动未安装成功或数据线无法传输数据,需重新安装驱动、更换数据线。
- WindTerm串口配置(核心实操):
(1)打开WindTerm工具,点击左上角“会话”→“新建会话”,在弹出的窗口中,选择“串口”选项;
(2)配置串口参数(嵌入式开发通用参数,不可随意修改):
① 端口:选择上一步记录的串口端口号(如COM3);
② 波特率:设置为115200(开发板默认波特率,匹配嵌入式Linux系统);
③ 数据位:8;
④ 停止位:1;
⑤ 校验位:无;
⑥ 流控:无;
(3)配置完成后,点击“连接”按钮,此时WindTerm会建立与开发板的串口连接,界面会显示连接成功的提示。
- 开发板启动与通信验证:
(1)若开发板已通电,重启开发板(按下开发板上的复位键);
(2)重启后,WindTerm界面会滚动显示开发板的启动信息(包含嵌入式Linux系统启动日志、硬件信息等);
(3)启动完成后,会显示登录提示符(如“root@ubuntu:~#”),此时输入开发板的登录用户名和密码(默认用户名root,密码root,具体可参考开发板说明书),登录成功后,即可通过WindTerm向开发板发送命令,实现串口通信。
(四)完整开发环境测试
开发板连接完成后,需测试“电脑→开发板”的通信是否正常,以及“Ubuntu→开发板”的程序传输通道是否畅通,确保完整开发环境可用,为后续课程做好准备:
- 串口通信测试:
在WindTerm串口界面,输入Linux基础命令(如ls、pwd、ifconfig),按下Enter键,若开发板能返回对应结果,说明串口通信正常。
- 文件传输测试(衔接FileZilla):
(1)在Ubuntu系统中,创建一个简单的文本文件(如test_board.txt);
(2)通过FileZilla将该文件传输到开发板(开发板登录后,可通过WindTerm查看开发板的文件目录,传输路径建议选择/home目录);
(3)在WindTerm中,输入“cat /home/test_board.txt”命令,若能显示文件内容,说明文件传输通道畅通。
常见问题解决:
开发板无法识别:更换USB数据线、重新插拔开发板,或手动安装USB转串口驱动;
WindTerm串口连接失败:检查端口号是否正确、波特率等参数是否配置正确,或重启WindTerm;
开发板启动无日志输出:检查串口连接是否牢固,波特率是否与开发板默认波特率一致;
登录失败:确认开发板默认用户名和密码,若忘记可参考开发板说明书,或重新烧录固件。
(五)开发板基础操作
登录开发板后,掌握以下基础操作,为后续课程铺垫:
查看开发板硬件信息:输入“cat /proc/cpuinfo”,查看ARM CPU信息;输入“free -h”,查看开发板内存信息;
查看开发板文件系统:输入“ls /”,查看开发板嵌入式Linux系统的根目录结构(与Ubuntu类似,均为Linux文件系统);
创建文件/目录:输入“mkdir /home/test”,在/home目录下创建test目录;输入“echo “test” > /home/test.txt”,创建文本文件;
重启/关机:输入“reboot”重启开发板,输入“poweroff”关闭开发板(实操中尽量使用重启,避免频繁关机损坏硬件)。
三、课堂示例
示例1:开发板硬件连接与驱动安装演示
取出开发板、USB数据线,将USB数据线一端插入开发板USB数据接口,另一端插入电脑USB接口,观察开发板指示灯亮起,打开设备管理器,查看“端口”选项,确认USB-SERIAL CH340端口正常识别,若未识别,演示手动安装USB转串口驱动的步骤,确保驱动安装成功,为后续串口连接做好准备。
示例2:WindTerm串口配置与连接演示
打开WindTerm,新建串口会话,选择正确的端口号(如COM4),配置波特率115200、数据位8、停止位1、无校验位、无流控,点击连接,重启开发板,观察WindTerm界面滚动显示启动日志,启动完成后,输入默认用户名和密码,登录开发板,输入“ls”命令,验证串口通信正常,全程演示每一步操作,重点提醒参数配置和端口号确认两个关键环节。
示例3:完整环境测试演示
在Ubuntu中创建test_board.txt文件,通过FileZilla将其传输到开发板/home目录,在WindTerm中输入“cd /home”“ls”命令,查看文件是否存在,输入“cat test_board.txt”,查看文件内容,验证文件传输通道畅通;再输入“ifconfig”命令,查看开发板IP地址,确认开发板网络正常,完成完整开发环境测试,演示常见问题的排查方法(如端口错误、驱动未安装的解决流程)。
四、课后作业
- 实操任务(核心):
(1)完成开发板与电脑的硬件连接,安装USB转串口驱动,确保电脑能识别开发板串口;
(2)配置WindTerm串口参数,建立与开发板的串口连接,成功登录开发板;
(3)完成环境测试:通过WindTerm执行ls、pwd、ifconfig命令,截图保存执行结果;通过FileZilla将Ubuntu中的测试文件传输到开发板,截图保存传输过程和文件查看结果;
(4)在开发板中创建一个名为“lesson3_test”的目录,在目录下创建文本文件,输入开发板硬件信息,保存文件。
- 简答题(巩固知识点):
(1)简述开发板在嵌入式Linux开发中的作用,以及本节课所用开发板的核心接口;
(2)简述WindTerm串口配置的核心参数,以及串口连接失败的常见原因(至少列出2个)。
- 预习任务:
预习第4课“交叉编译原理与工具链使用”,了解交叉编译的定义和作用,提前熟悉交叉编译工具链的安装步骤,为下节课的程序交叉编译与下载做好准备。
五、本节课核心总结
核心知识点总结
开发板基础:开发板是嵌入式Linux开发的核心硬件载体,ARM架构,集成CPU、内存、外设接口,贴合工业级嵌入式设备场景;
核心实操:开发板硬件连接、USB转串口驱动安装、WindTerm串口配置、开发板登录与通信,核心是串口参数配置(波特率115200等);
环境测试:串口通信测试、文件传输测试,确保“电脑→开发板”“Ubuntu→开发板”的通道畅通,完整开发环境可用;
基础操作:掌握开发板的基础Linux命令操作,了解开发板文件系统结构,为后续程序下载、驱动开发铺垫;
常见问题:开发板识别失败、串口连接失败、登录失败,掌握对应的排查和解决方法。
学习重点与难点
重点:开发板与电脑的硬件连接、WindTerm串口参数配置、开发板登录与环境测试,能独立完成开发板连接和基础操作;
难点:USB转串口驱动安装、串口参数配置(避免参数错误导致通信失败),以及常见问题的排查思路。
关键词
开发板、ARM架构、USB转串口驱动、WindTerm、串口通信、波特率、串口配置、开发环境测试
六、课程回顾总结
本节课作为嵌入式Linux基础入门阶段的关键实操课,核心围绕开发板与电脑的连接配置展开,衔接上节课的Windows开发环境搭建,完成了“电脑+Ubuntu+开发板”完整开发环境的搭建。首先,我们讲解了开发板的基础认知,明确其作为嵌入式开发核心硬件载体的作用,介绍了本节课所用开发板的核心接口和基础配置,让学员理解开发板在嵌入式开发中的核心地位。随后,我们详细拆解了实操流程,从硬件准备、软件准备、前期检查,到开发板硬件连接、USB转串口驱动安装、WindTerm串口配置,再到开发板登录与环境测试,每一步都结合详细说明和注意事项,适配零基础学员的学习节奏,重点强调了串口参数配置、端口号确认等关键节点,避免学员出现操作失误。同时,通过课堂示例演示,直观展示了开发板连接的完整流程和常见问题的排查方法,帮助学员快速掌握操作技巧。此外,我们还讲解了开发板的基础Linux操作,为后续课程铺垫。最后,我们布置了课后实操作业和预习任务,巩固本节课知识点,衔接下节课的交叉编译内容。通过本节课的学习,学员们已掌握开发板的连接与基础操作,成功搭建了完整的嵌入式Linux开发环境,为后续的程序下载、驱动开发、项目实战奠定了坚实的硬件基础,也进一步提升了实操动手能力和问题排查意识。
上一节课作业答案:嵌入式Linux开发环境搭建 实战作业代码及说明
(一)实战作业代码
#!/bin/bash# 第2课实战作业代码:环境测试脚本,验证Ubuntu系统、FileZilla传输及WindTerm远程连接可用性# 脚本功能:执行基础Linux命令,生成测试文件,用于验证环境搭建效果# 1. 执行基础Linux命令,验证Ubuntu系统正常运行echo"=== 基础Linux命令执行测试 ==="echo"当前工作目录:"pwdecho"当前目录下文件列表:"ls-lecho"虚拟机IP地址信息:"ifconfig|grepinetecho"=============================="echo""# 2. 生成测试文件,用于FileZilla文件传输测试echo"=== 测试文件生成 ==="test_file="lesson2_test.txt"echo"这是第2课环境测试文件,用于验证FileZilla文件传输功能">$test_fileecho"测试文件内容:"cat$test_fileecho"测试文件已生成,路径:$(pwd)/$test_file"echo"======================"echo""# 3. 验证SSH服务是否正常运行(FileZilla、WindTerm连接依赖)echo"=== SSH服务状态测试 ==="servicesshstatus|grep"active (running)"if[$?-eq0];thenecho"SSH服务正常运行,可正常使用FileZilla和WindTerm连接"elseecho"SSH服务未运行,请重新安装SSH服务器(sudo apt install openssh-server)"fiecho"========================"(二)代码功能说明
本代码为Shell脚本,适配第2课开发环境搭建实操,核心用于验证Windows下嵌入式Linux开发环境的可用性。脚本依次执行三大核心测试:一是运行pwd、ls、ifconfig等基础Linux命令,验证Ubuntu系统正常启动且命令可正常执行;二是生成测试文本文件,用于后续FileZilla文件传输测试,确认Windows与Ubuntu之间的文件传输功能正常;三是检查SSH服务运行状态,确保FileZilla和WindTerm的远程连接、文件传输依赖正常。脚本简洁易懂,步骤清晰,运行后可直观判断环境搭建是否成功,同时巩固Linux基础命令使用,衔接第2课实操内容,为后续开发板连接、交叉编译等课程做好环境验证准备。
(三)作业注意事项
脚本需在Ubuntu系统中执行,可通过WindTerm远程登录后运行,或直接在Ubuntu终端操作,确保脚本权限(执行chmod +x lesson2_homework.sh赋予执行权限);
运行脚本前,需确保Ubuntu系统已正常登录,SSH服务已开启(未开启可执行sudo apt install openssh-server安装);
生成的测试文件需通过FileZilla传输到Windows系统,截图保存传输过程,完成作业要求;
若脚本执行报错,优先检查命令拼写、SSH服务状态,或重新确认Ubuntu环境是否正常;
保存脚本文件(命名格式:lesson2_homework.sh),妥善留存,后续课程可用于环境故障排查。