嵌入式开发Linux入门

本文介绍了嵌入式开发的基础概念,包括交叉开发和嵌入式开发的相关术语,如开发计算机、目标计算机、交叉编译器等。接着详细阐述了嵌入式Linux开发的流程,包括开发引导加载程序、内核实现、创建模块、开发应用程序以及系统调整。通过这些步骤,读者可以对嵌入式Linux开发有一个全面的理解。
摘要由CSDN通过智能技术生成

导语

近年来,“嵌入式设备”对Linux的采用越来越多。
Linux标准拥有的许多功能都符合嵌入式产品的目的,这是最大的原因。
安装在嵌入式设备上的Linux通常被称为“嵌入式Linux”,并使用与传统PC上运行的Linux不同的表达式。
但是,Linux和嵌入式Linux没有明显的区别也是事实,在某种程度上环境完备的状态的话,特别是意识不到嵌入式Linux的软件开发可能。
但是,从环境整备没有实现的状态开始开发嵌入式Linux,必须把握嵌入式这个词的意思。

嵌入式基础概念

交叉开发和自助开发

“交叉开发”,这是嵌入式开发的基本方法。

自助开发:开发环境和执行环境相同。
交叉开发:开发环境和执行环境不同。

也就是说,在PC世界中,使用Visual C++等开发PC应用程序的形式是自我开发。另一方面,交叉开发意味着在另一个设备(其他架构)上运行创建的可执行文件。

那么,为什么在嵌入式开发中交叉开发是基本方法呢?最大的原因是执行环境中的处理器(CPU)和操作系统是不同的。如你所知,Windows可执行文件不会在Linux上运行(操作系统不同)。即使在相同的Linux应用程序中,PC/AT兼容机的可执行文件也不会在Macintosh(编注)上运行(CPU不同)。在不同的环境中运行软件需要相应的工作。嵌入式设备使用各种CPU和操作系统,因此交叉开发势在必行。

Macintosh是苹果公司开发和销售的PC的品牌名称。
1984年第一台机器发布。通常被称为“Mac”。

另外,嵌入式设备的CPU功率和内存安装量等资源有限,很多情况下不可能像PC这样的开发方法。在可以使用相对较多资源的PC和工作站上开发,可以缩短编译时间,高效。

嵌入式开发相关术语

在嵌入式开发中,出现了PC软件开发中不常用的独特术语。在了解交叉开发的地方,也请记住其他的关键词。

1.开发计算机(又名:主计算机)

指的是实际创建程序的PC。

2.目标计算机(又名:目标板、目标)

指嵌入式设备。在交叉开发中运行创建的可执行文件的环境。

3.交叉编译器/汇编程序/链接器

交叉编译器/汇编程序/链接器用于编译所创建的程序(主要以C语言等编写)为目标。

4.交叉库(又名:目标库)

在用术语3中所示的工具编译程序时,需要交叉库。例如,如果您创建了hello.c,那么如果您认为其中使用的printf()本身是存储的,那么就很容易理解了。

如果您准确地描述交叉库,您将为目标操作系统提供两个交叉库和一个独立于OS的交叉库。存储在库中的许多函数都是通过结合操作系统的功能来实现的。要连接到OS本身的库和稍后将描述的引导加载器使用OS独立交叉库。

5.交叉调试器

虽然实际创建的可执行文件将直接在目标上运行,但是如果有调试器来查明问题的原因,这是非常有用的。
除此之外,关于交叉开发的关键词有很多,经常使用的是上述的5个左右吧。

嵌入式开发的流程

那么,让我们来看看实际嵌入式Linux的开发步骤。

步骤1:开发引导加载程序

首先要做的是开发引导加载程序来在目标上运行Linux本身。内置领域的引导加载程序相当于PC/AT兼容机的BIOS(编注)。

PC世界中使用的“引导加载程序”通常被写入MBR中,通常指的是BIOS调用的程序。LILO、GRUB、Windows的OS Loader等很有名。

引导加载程序的作用是随着设备的打开,从任意位置取出内核映像,并将其部署到目标内存中并运行。
我们没有安排这个“任何地方”,但大多数设备都使用闪存ROM等作为内存。
因此,为了维护等,除了原来的功能以外,还可以编入对ROM的程序写入功能等。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值