0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

列举一些嵌入式Linux应用开发里经常使用的技巧和套路

工程师进阶笔记 来源:工程师进阶笔记 2023-11-14 10:44 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

本篇文章,我们基于ELF 1S这一款开发板,来列举一些嵌入式Linux应用开发里面,经常使用到的开发技巧和套路。

1-收到开发板,首先要做什么?

先欣赏一下包装外观,然后打开包装盒,小心翼翼拿起来,观赏一下开发板的颜值,还可以凑近点闻一下电路板的松香味和洗板水味。

如果开发板带屏幕,还要看一下屏幕外观是否有破损,如果有,马上联系开发板厂家进行处理。

2-开发板如何上电测试?

看这份文档《01-0 ELF 1、ELF 1S开发板_快速启动手册_V1.pdf》,基本上,现在很多入门级的开发板,都会配套一份“快速启动手册”之类的文档,旨在帮助初学者快速地把开发板通电使用起来。

至少通过这份手册,你可以知道开发板有哪些硬件资源,以及如何通电让开发板运行起来。

wKgaomVS31mAK7XOAADo37lFoNA410.jpg

**3-我暂时没有硬件基础,能学习嵌入式Linux开发吗? **

嵌入式开发是必须要具备硬件电路知识的,不学硬件是不行的。但嵌入式软件和硬件的学习次序,则可以灵活搭配,更何况ELF 1S这款开发板也提供了一系列的硬件学习文档和视频。

如果你是百分百的初学者,同时又对嵌入式技术存在执念,那建议先从嵌入式Linux应用开发入手,这样至少没那么容易被劝退。

4-想学嵌入式Linux应用程序开发,应该怎样开始呢?

要想学嵌入式Linux应用程序,首先得了解什么是“Linux操作系统”?网络上已经有一大堆的概念介绍了。

要先学会用一款桌面型的Linux系统,比如Ubuntu。因为开发板上面的应用程序基本上都是在桌面型的Linux系统上进行开发的,然后经过交叉编译后,再传输到开发板上面运行。

C语言编程是必学的,shell编程也最好打一下基础,这两门语言是嵌入式开发里面必不可少的两大知识点。如果没有这两门语言的基础,建议先不要碰开发板,先在网上找相关的课程,把这两门语言的基础先打一下。

基础不牢,地动山摇!

编程语言学完后,就是搭建开发环境了。说得通俗一点,搭建开发环境其实就是在你的Windows或者Ubuntu系统上面,安装各种软件,使你的电脑能跟开发板连接起来,能在两者之间互相传输文件。安装各种软件,我相信这活难不倒各位。

嵌入式Linux应用程序开发,本质上就是在你的桌面PC上写程序,然后交叉编译,然后把程序传到开发板上面运行起来。因为有些开发板的性能,不足以支撑你在其上面写代码编译。但有些性能非常强大的开发板,是可以直接在上面编程和运行的,完全不需要交叉编译。

记住:嵌入式Linux开发板,本质上也是一台电脑,本质上也是一台电脑,本质上也是一台电脑。

5-很多出学者都被搭建开发环境劝退了,搭建开发环境很难吗?

嵌入式Linux开发板的开发环境,有两种获得方式:1-根据教程和网上的资料,自己折腾。2-开发板厂家搭建好,直接拿来使用。

建议没有嵌入式基础的初学者,先直接用开发板厂家搭建好的开发环境,这样不会那么容易被劝退,到了后期掌握了一定的技巧后,再尝试自己搭建开发环境。搭建开发环境,就是安装ubuntu,以及在Ubuntu上面安装软件。

使用厂家搭建好的开发环境,看《01-1 ELF 1、ELF 1S开发板_软件教程_V1.pdf》的第二章,第2.1.3节,如下图所示。

wKgaomVS31mASxXdAAGL6osTCnQ757.jpg

6-用什么软件编写嵌入式Linux应用程序代码

写代码的软件多了去了,随便简单改点代码的话,记事本也是可以的。初学者比较常用的,可以用vscode,QtCreator也是一款很不错的编辑器,一开始入门学习,不太建议迷信Vim大法,编辑器只是工具,Vim这种略复杂的编辑工具,还不太适合初级入门的同学。

不用太迷信代码编辑工具,用你自己平时用习惯的,以及觉得编辑效率最高的,如果你平时没有用啥编辑器,那建议用vscode吧,这工具是真香。

wKgZomVS34eAPpYvAAE4ZTMYRbk158.jpg

7-编写完代码,怎样把代码转化为开发板能运行的程序?

交叉编译!前面提到,如果在开发板上面直接编写代码然后编译,那个叫直接编译运行。如果在桌面型PC上编写代码和编译,然后在开发板上面运行,那就叫做交叉编译。

可以查看《01-1 ELF 1、ELF 1S开发板_软件教程_V1.pdf》这份文档的第二章2.6.3章节,如下图所示。

wKgaomVS31mAMDbFAAEjX3u8r4s282.jpg

8-怎样在桌面PC和开发板之间互相传输文件?

一般有两种方式:1-通过TF卡或者U盘互相拷贝,就像在两台电脑直接互拷文件一样。2-用网线把电脑跟开发板连起来,通过FTP协议或者NFS网络文件系统进行传输。

我个人比较喜欢通过网络的方式,在电脑和开发板直接互传文件,FTP协议的方式,在快速启动手册里面的【附录一】有介绍,如下图所示。

wKgZomVS31mAQyO6AAEw_iF8-U8903.jpg

NFS网络文件系统,也是一种比较常用的方式,网上很多资料,可自行搜索学习,特别是需要经常修改文件系统配置的时候,通过NFS挂载文件系统,可以起到事半功倍的作用。

TF卡一般用在产品批量生产时的固件烧录,个人感觉,通过TF卡拷贝应用程序到开发板然后运行,略麻烦。

9-开发板的系统被搞坏了,怎样恢复成出厂设置?

开发板厂家一般都会为板子配套出厂镜像,在我们的开发过程中,如果不小心把原有的系统搞坏了,可以根据开发板厂家提供的方法,把开发板恢复成出厂时的状态,一般是通过特定的烧录工具和TF卡进行烧录。

快速启动手册里面的第四章,有讲述如何为开发板恢复出厂设置,如下图所示。

wKgZomVS31mAI5E0AAD-6yaUOJE861.jpg

10-我想进一步学习更复杂的嵌入式Linux系统移植和驱动开发,应该怎样开始?

看文档和视频,《01-1 ELF 1、ELF 1S开发板_软件教程_V1.pdf》这份文档的第五章至第九章,提供了Linux内核移植、驱动开发、u-boot介绍、文件系统移植,这几大块基本的知识点,如下图所示。

wKgZomVS31mAEWlwAAGjI-EMpGg400.jpg







审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5186

    文章

    20146

    浏览量

    328811
  • Linux系统
    +关注

    关注

    4

    文章

    609

    浏览量

    29640
  • C语言
    +关注

    关注

    183

    文章

    7642

    浏览量

    144609
  • elf
    elf
    +关注

    关注

    0

    文章

    13

    浏览量

    2493

原文标题:嵌入式 Linux 开发,常用的套路和技巧。

文章出处:【微信号:工程师进阶笔记,微信公众号:工程师进阶笔记】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    个面向单片机、事件驱动的嵌入式开发平台介绍

    为核心,打造个统嵌入式技术生态,为广大企业用户和嵌入式开发者们,提供搞可靠性的、高性能的、现代且高开发效率的
    发表于 12-05 06:26

    嵌入式开发的关键点介绍

    嵌入式系统的应用非常广泛,例如:智能家居、智能手表、智能手机、智能汽车等等。嵌入式开发需要开发人员具备深入的硬件知识和编程经验,但是也有一些嵌入
    发表于 11-13 08:12

    怎么结合嵌入式Linux,和FPGA三个方向达到个均衡发展?

    嵌入式领域,不少人都怀揣着让嵌入式Linux 和 FPGA 三个方向实现均衡发展的梦想,然而实践中却面临诸多挑战。就像备受瞩目的全栈工程师稚晖君,他从大学玩单片机起步,凭借将智能算法融入
    的头像 发表于 06-25 10:08 652次阅读
    怎么结合<b class='flag-5'>嵌入式</b>,<b class='flag-5'>Linux</b>,和FPGA三个方向达到<b class='flag-5'>一</b>个均衡发展?

    Linux嵌入式和单片机嵌入式的区别?

    :成本较低,适合预算有限的项目。 Linux嵌入式 :成本较高,适合对功能和性能有较高要求的项目。 8. 社区和支持 : 单片机嵌入式 :社区和支持相对较小,但也有一些专业的论坛
    发表于 06-20 09:46

    嵌入式开发入门指南:从零开始学习嵌入式

    基础 3. 学习路径推荐第阶段:熟悉开发环境(如Keil、IAR、STM32)第二阶段:掌握裸机编程与驱动开发第三阶段:学习RTOS(实时操作系统)如FreeRTOS第四阶段:深入理解Lin
    发表于 05-15 09:29

    嵌入式适合自学吗?

    ,学习者可能会因为缺乏专业的指导而走很多弯路。例如,在学习STM32时,可能会因为不了解正确的学习方法和顺序,而花费大量时间在一些不必要的内容上。 2)难以解决实际问题:在嵌入式开发中,经常会遇到各种
    发表于 04-27 09:54

    为何嵌入式开发者觉得 MCU 开发无趣,更倾向 MPU(Linux)?

    嵌入式圈子,最近老能听见有人念叨:“搞 MCU 开发越来越没劲儿了,不如转 MPU(Linux)有意思。” 作为在这行摸爬滚打二十多年的老兵,我也算看明白了 —— 这事儿就像程序员
    的头像 发表于 04-25 10:48 651次阅读
    为何<b class='flag-5'>嵌入式开发</b>者觉得 MCU <b class='flag-5'>开发</b>无趣,更倾向 MPU(<b class='flag-5'>Linux</b>)?

    硬核升级!华清远见STM32MP157驱动开发课程助力嵌入式Linux底层开发入门进阶

    嵌入式Linux系统开发中,驱动程序开发项关键技术,它作为硬件与软件之间的桥梁,实现了操作系统对硬件设备的控制。相较于
    的头像 发表于 04-03 16:40 706次阅读
    硬核升级!华清远见STM32MP157驱动<b class='flag-5'>开发</b>课程助力<b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b>底层<b class='flag-5'>开发</b>入门进阶

    Python在嵌入式系统中的应用场景

    你想把你的职业生涯提升到个新的水平?Python在嵌入式系统中正在成为股不可缺少的新力量。尽管传统上嵌入式开发更多地依赖于C和C++语言,Python的优势在于其简洁的语法、丰富的
    的头像 发表于 03-19 14:10 1190次阅读

    如何成为嵌入式开发工程师?

    如何成为嵌入式开发工程师? 成为嵌入式开发工程师通常需要掌握系列技能和知识,并且在实践中不断积累经验。以下是一些基本步骤和建议: 1. 基础教育:- 获取电子工程、计算机科学或相关领
    发表于 02-19 10:39

    嵌入式开发必备-RK3562演示Linux常用系统查询命令(上)触觉智能出品

    实用干货!嵌入式开发学习必备-RK3562演示Linux常用系统查询命令(上)关注触觉智能持续为大家带来更多嵌入式开发内容
    的头像 发表于 12-31 10:51 117次阅读
    <b class='flag-5'>嵌入式开发</b>必备-RK3562演示<b class='flag-5'>Linux</b>常用系统查询命令(上)触觉智能出品

    Made with KiCad(九十四):M5Pi Linux嵌入式开发

    “ 波哥大作,必须优先安排!M5Pi 是款开源 Linux 嵌入式开发板,使用全志 F1C200s CPU,拥有漂亮的外壳。”
    的头像 发表于 12-25 14:53 1330次阅读
    Made with KiCad(九十四):M5Pi <b class='flag-5'>Linux</b><b class='flag-5'>嵌入式开发</b>板

    新手怎么学嵌入式?

    操作 实践是学习嵌入式技术的关键。你可以购买一些低成本的嵌入式开发板,如 Arduino 或 Raspberry Pi。这些开发板具有丰富的资源和简单易懂的文档,非常适合初学者。通过在
    发表于 12-12 10:51

    嵌入式系统开发中的测试方法 嵌入式系统开发与AI结合应用

    嵌入式系统开发中的测试方法 嵌入式系统开发个复杂的过程,涉及到硬件和软件的紧密结合。测试是确保系统可靠性和性能的关键步骤。以下是
    的头像 发表于 12-09 10:22 2033次阅读

    嵌入式系统开发与硬件的关系 嵌入式系统开发常见问题解决

    嵌入式系统开发与硬件的关系 嵌入式系统是专为特定应用设计的计算机系统,它们通常嵌入在所控制的设备中。这些系统的关键特点是它们与硬件的紧密集成,这意味着软件必须为特定的硬件平台量身定制。
    的头像 发表于 12-09 09:38 1466次阅读