我们从2011年坚守至今,只想做存粹的技术论坛,记录你的技术足迹,有空就回来看看。  由于网站在外面,点击附件后可能要20秒才弹出下载,请耐心等待,勿重复点击

 找回密码
 立即注册
搜索
查看: 2300|回复: 24

[技术讨论] 嵌入式系统开发:Arm与Linux的完美结合

[复制链接]

该用户从未签到

33

主题

34

回帖

16

积分

一级逆天

积分
16

社区居民终身成就奖

QQ
发表于 2019-5-29 01:34:43 | 显示全部楼层 |阅读模式
嵌入式系统的定义应当是以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。

  比如现在ATM取款机就是一个典型RTOS,embedded os主要包括两部分,一部分是处理器,比如Arm,POWERPC,MIPC,一部分是OS,比如Linux,wince,vxworks,us/os,etc.我现在主要学习的路线是arm+linux,选择arm主要是因为arm技术已经比较成熟,选择linux是因为linux是开源的,免费的,另外如果学好了linux就算将来不搞嵌入式系统开发这块,也可以专供linux服务器这一方面。
  学习嵌入式linux,主要做的就是四点,一点就是写bootloader,并移植到到nand flash上,第二点,编译kernel,并通过bootloader下载到nand flash上,第三点,在基于nand flash上建立文件系统,第四点,把写好的应用程序下载到target上。基本流程就是这么下来的,具体到开发板上时可能就有所差别了,下边就以深圳优龙公司的fs2410为目标板具体的上述一下开发的流程,以及在开发中应注意的问题。
  第一步:交叉编译环境的建立
  A: 基于linux操作系统的应用开发环境一般是由目标系统硬件(开发板)和宿主pc机所构成。目标硬件开发板用于运行操作系统和系统应用软件。而目标板所用到的操作系统的内核编译、应用程序的开发和调试则需要通过宿主pc机来完成(所以称为交叉编译)。双方之间一般通过串口,并口或以太网接口建立连接关系。安装linux os,比如redhao linux 9.0,可以采用默认安装(但要包含ftp服务),将该linux服务器接入局域网,其他的pc机可以用windows,需要的软件工具包括。
  (1)ftp客户端程序
  (2)telnet工具
  (3)移植到某一特定arm平台的linux操作系统内核源码
  (4)gnu编译工具,可由相关网站下载
  在某工作站pc上安装ftp客户端程序和telnet工具,linux os kernel的编译一般有一个比较固定的步骤,会根据Makefiel文件的不同而略有差异,可参考相关文档,按固定的步骤编译内核完成以后,会在相应目录生成可执行的二进制文件,通过ftp传到pc机上,热后通过串口或网络下载到开发板上。
  B:(1) 创建编译环境,在这个过程中,将设置一些环境变量,创建安装目录,安装内核源代码和头文件等。
  (2) 创建binutils.在这个过程结束后,会创建类似arm-linux-ld等工具。
  (3) 创建一个交叉编译版本的gcc,注意:在这个过程中,只能编译c程序,而不能编译c++程序。
  (4) 创建一个交叉编译版本的glibc,这里最容易出问题。
  (5) 创建一个交叉编译版本的gdb。这个过程结束后,会创建arm-linux_gdb
  (6) 重新创建gcc。前面创建gcc的过程没有编译c++编译器,现在glibc已经准备好了,所以这个步骤将完善gcc的交叉编译。
  (7) 重新创建glibc.
  如果在交叉编译过程中出现错误,那么请检查:
  版本选择是否正确,以及是否安装了相应的补丁;
  库文件路径设置是否正确;
  系统环境变量是否设置正确。
  第二步:编写bootloader并移植到开发板上
  A:bootloader(引导加载程序)是系统加电后运行的第一段代码。嵌入式系统中的bootloader相当于pc机中的bios。大多数bootloader都包含两种不同的操作模式,一种是启动加载(bootloading)模式,在这种模式下,bootloader从目标机上的某个固态存储器设备上将操作系统加载到RAM中运行,整个过程并没有用户的介入。这种模式是bootloader的正常工作模式,另一种是下载(downloading)模式。在这种模式下,目标机上的bootloader将通过串口或网络等通信手段从开发主机(host)上下载内核映像和根文件系统映像等到RAM中。然后可以再被bootloader写到目标机上的固态存储介质上。
  B:bootloader启动大多数都分为两个阶段
  (1):基本的硬件初始化(屏蔽所有的中断,关闭处理器内部指令/数据cache等)。
  为第二阶段准备RAM空间,如果是从某个固态存储媒质中,则复制bootlodaer的第二阶段代码到RAM。
  设置堆栈。
  跳转到第二阶段的C程序入口点。
  (2):初始化本阶段要使用的硬件设备。
  检查系统内存映射。
  将内核映像和根文件系统映像从flash读到RAM。

  为内核设置启动参数调用内核。
回复

使用道具 举报

该用户从未签到

61

主题

5330

回帖

0

积分

PADS-181217初级班

积分
0

终身成就奖特殊贡献奖原创先锋奖优秀斑竹奖

发表于 2019-5-29 01:56:48 | 显示全部楼层
回复

使用道具 举报

该用户从未签到

0

主题

4392

回帖

0

积分

二级逆天

积分
0

终身成就奖特殊贡献奖原创先锋奖优秀斑竹奖

QQ
发表于 2019-5-29 07:42:30 | 显示全部楼层
回复

使用道具 举报

该用户从未签到

43

主题

3702

回帖

5017

积分

二级逆天

积分
5017

社区居民忠实会员社区劳模最爱沙发原创达人终身成就奖特殊贡献奖优秀斑竹奖

QQ
发表于 2019-5-29 07:54:53 | 显示全部楼层
不错的初步概要性文章
回复

使用道具 举报

  • TA的每日心情
    开心
    昨天 08:54
  • 签到天数: 29 天

    [LV.4]偶尔看看III

    49

    主题

    1万

    回帖

    7万

    积分

    三级逆天

    积分
    70212

    终身成就奖特殊贡献奖原创先锋奖社区居民忠实会员社区劳模最爱沙发社区明星原创达人优秀斑竹奖宣传大使奖

    QQ
    发表于 2019-5-29 07:56:58 | 显示全部楼层
    回复

    使用道具 举报

    该用户从未签到

    2

    主题

    1311

    回帖

    0

    积分

    二级逆天

    积分
    0

    终身成就奖原创先锋奖优秀斑竹奖

    发表于 2019-5-29 08:31:45 | 显示全部楼层
    回复

    使用道具 举报

  • TA的每日心情
    无聊
    昨天 14:34
  • 签到天数: 30 天

    [LV.5]常住居民I

    3

    主题

    3663

    回帖

    4288

    积分

    二级逆天

    积分
    4288

    终身成就奖优秀斑竹奖

    QQ
    发表于 2019-5-29 08:54:08 | 显示全部楼层
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    昨天 14:29
  • 签到天数: 35 天

    [LV.5]常住居民I

    82

    主题

    1万

    回帖

    9883

    积分

    二级逆天

    积分
    9883

    社区居民社区劳模原创先锋奖终身成就奖特殊贡献奖优秀斑竹奖

    QQ
    发表于 2019-5-29 09:06:37 | 显示全部楼层
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    前天 11:31
  • 签到天数: 25 天

    [LV.4]偶尔看看III

    60

    主题

    1万

    回帖

    8201

    积分

    二级逆天

    积分
    8201

    终身成就奖特殊贡献奖原创先锋奖社区居民灌水天才奖优秀斑竹奖宣传大使奖忠实会员最爱沙发社区劳模

    QQ
    发表于 2019-5-29 09:12:24 | 显示全部楼层
                
    回复

    使用道具 举报

  • TA的每日心情
    无聊
    昨天 09:59
  • 签到天数: 22 天

    [LV.4]偶尔看看III

    3

    主题

    2912

    回帖

    983

    积分

    二级逆天

    积分
    983

    社区居民终身成就奖特殊贡献奖优秀斑竹奖

    QQ
    发表于 2019-5-29 09:14:49 | 显示全部楼层
           谢谢
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Copyright ©2011-2024 NTpcb.com All Right Reserved.  Powered by Discuz! (NTpcb)

    本站信息均由会员发表,不代表NTpcb立场,如侵犯了您的权利请发帖投诉

    平平安安
    TOP
    快速回复 返回顶部 返回列表