ARM嵌入式系统的软件开发方法

例如,有些系统的ARM芯片上运行Linux等操作系统;而另外一些ARM芯片上使用的却是不带操作系统的软件,如使用ADS开发的ARM Evaluator,其程序的运行通过板载程序配合下载程序实现。不过嵌入式操作系统在嵌入式系统中的作用日显重要,它可以为嵌入式系统开发人员提供一个基本的软件开发和运行的支撑平台,从而大大减小复杂嵌入式系统的开发难度和开发周期,增强系统的稳定性,降低开发和维护成本。

ARM嵌入式软件的一般开发过程是:设计目标硬件板,建立嵌入式Linux开发环境,编写、调试Boot-loader,编写、调试Linux内核,编写、调试应用程序,调试ARM板。Boot-loader用于初始化目标板、检测目标板和引导Linux内核。高速BDM(BackgroundDebug Mode,背景调试模式)/JTAG接口用于目标板开发,它可以检测目标板硬件、初始化目标板、调试Boot-loader和BSP,如图所示。

在嵌入式Linux开发过程中,选择好的嵌入式Linux开发平台和调试工具可以极大地提高嵌入式Linux开发效率。嵌入式系统的特点是系统资源小,因此具体目标板的设备驱动程序(Device Driver)需要定制,BDM /JTAG调试工具是开发Linux内核的很好手段。调试工具利用CPU的JTAG接口,对运行程序进行监控,不占用系统的其他资源。[page]

(1)引导和加载Linux内核的程序,主要是用户自己编制的Boot-loader程序。Boot-loader的功能相当于PC的BIOS,在硬件板一加电后就开始运行,它要用串行电缆把PC与硬件开发板连接起来,在PC端通过对程序的编译,生成一个bin文件,通过简易的JTAG探头,把它烧写到Nand-Flash。

Boot-loader主要完成硬件初始化,同时设置Linux启动时所需要的参数,然后跳到Linux内核启动代码的第一个字节开始引导Linux。

(2)Linux内核,为特定的嵌入式硬件系统板定制的内核及内核的启动参数。为了实现Linux内核的移植,要把编译生成的Boot-loader,Kernal Image(内核)及Root Filesystem(根文件系统)烧写到Hash中。在编译内核的时候,还可以选择需要支持的网络协议,所支持的主要协议包括TCP/IP(如TCP、IP、UDP、ICMP、ARP、RARP、FTP、TFTP、BOOTP、DHCP、RIP、OSPF、HTTP等)。由于内核己经支持多种网络协议,因此通过加载不同的应用程序,就可以实现相应类型的应用。

(3)和Linux内核配合使用的根文件系统,包括建立根文件系统和建立于Flash设备上的文件系统。将文件系统也烧写到Hash后,Linux就可以在硬件板上正常运行了。

(4)用户应用程序。为了使人机交互界面友好,通常在用户应用程序和Linux内核层之间移植一个嵌入式图形用户界面(Graphic User Interface,GUI)。

对于Linux下的ARM开发环境,最重要的是一个交叉编译器,其次是一个标准的C库。然而编译一个可靠的ARM交叉编译器,是非常复杂的工作,有两个方法可以得到一个ARM交叉编译器。

(1)到专门为ARM开发建立的网站下载一个别人编译好的编译器,如网站ftp∶//ftp.arm.linux.Org.uk/pub/armlinux/toolcham,这里提供了多个版本的交叉编译器,它们都是基于glibc的C库,但glibc的C库比较庞大,不适合作为小型的嵌入式系统开发使用。所以可以选择第二种方法去构造一个基于更小的C库μClibc的编译器。

(2)编译一个交叉编译器,虽然这个工作非常复杂,但Linux平台下面有全世界的爱好者在共同维护,所以可以找到许多编译一个交叉编译器的方法。

μClibc.Org网站中提供了一个基于pClibc的C库交叉编译器的构造方法,这个编译器是针对多平台的。μClibc是原来μCLinux(一个专门用于没有MMU的嵌入式芯片使用的Linux版本)开发过程中的一个C库,现在已经独立于μLinux项目并且进一步完善。它目前己经可以支持很多的系统平台,而且它比glibc更加小巧,非常适合作为嵌入式的开发。很多原来基于glibc开发的软件在μClibc下面也可以很方便地移植,甚至无须做任何改动就可以编译运行。;μClibc对glibc的大部分函数都做了重写,并且保持名称一样。利用μClibc构建嵌入式Linux系统将比glibc占用更小的空间。

构建好了软件开发环境或交叉编译器,就可以在PC上编译ARM运行的程序了,对调试各个硬件程序模块和移植ARM Linux/GUI系统很有帮助。

自从推出自研的M1系列处理器之后,苹果已经开始在Mac电脑产品线中大量使用自家芯片,ARM架构也在桌面平台逐渐取代x86处理器了。目前苹果的M1系列已经有M1、M1 Pro、M1 Max三款产品,使用的是台积电5nm工艺代工,今年还会有M2系列处理器,开发已近完成,将采用台积电4nm工艺量产,未来Apple Silicon将以每18个月为周期进行升级。此前爆料,苹果Mac电脑今年至少分为6大系列,其中笔电产品将区分为搭载M2处理器的MacBook,以及搭载M2 Pro及M2 Max的MacBook Pro。一体机产品将区分为搭载M2处理器的iMac,以及搭载M2 Pro及M2 Max的iMac Pro。至于桌面级产品

随着车载摄像头数量和复杂性的增加,以及机器和人类视觉对输出的要求不尽相同,高效且安全地转换图像数据需要更高的计算能力。为了在ADAS和自动驾驶中启用新功能,汽车行业将需要一种新的图像处理方法。据外媒报道,Arm宣布推出全新车用影像讯号处理器Arm® Mali™-C78AE ISP,以进一步补充其专为满足车用效能与安全需求开发的IP产品。新增的Mali-C78AE搭配Cortex®-A78AE与Mali-G78AE,可提供先进驾驶辅助系统(ADAS)完整的视觉信息处理管线,以优化效能、降低功耗,并提供一致的方法达成功能性安全的要求,从而推动ADAS功能在市场的应用。(图片来源:Arm)Arm车用与物联网事业部副总裁Chet Babla

推出全新图像处理器Mali-C78AE 用于驾驶员辅助和自动化 /

“我们并没有完成与ARM的合并,任何可能源自这种假设的策略都从未被探讨过。我们的战略始终未曾改变,我们将继续为任何使用CPU(中央处理器)的设备提供加速计算。”近日,英伟达首席执行官黄仁勋在接受媒体采访时对“英伟达终止收购ARM”回应称。根据英伟达公布的 2022 财年第四财季财报显示,其营收较上年同期猛增 53%,游戏、数据中心和专业可视化市场平台也都实现了创纪录的收入。财报发布后,英伟达首席执行官黄仁勋接受媒体采访时称将,未来将坚持“三芯片”战。

ARM嵌入式系统的软件开发方法

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

Scroll to top