arm嵌入式

Ubuntu交叉编译工具链安装

筅森魡賤 提交于 2020-04-04 13:26:25
一、简介 交叉编译器有很多种,Linaro 出品的交叉编译器是其中一种,Linaro 一间非营利性质的开放 源代码软件工程公司,Linaro 开发了很多软件,最著名的就是 Linaro GCC 编译工具链(编译器), 关于 Linaro 详细的介绍可以到 Linaro 官网查阅。官网地址:https://www.linaro.org 二、GCC编译器的下载 (1)进入官网 https://www.linaro.org (2)点击官网右上角的Support下的Downloads,之后在页面中找到下面的界面 (3)点击Binaries(可执行文件),出现如下界面: (4)点击两次 Parent Directory,出现如下界面: (5) 根据需要选择版本,比如我们选择4.9版本,如下图: https://releases.linaro.org/components/toolchain/binaries/4.9-2017.01/arm-linux-gnueabihf/ 只需要关注这两个文件: gcc-linaro-4.9.4-2017.01-i686_arm-linux-gnueabihf.tar.xz //32 位系统的 gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz //64 位系统的 三、安装GCC (1)在

ARM-Linux开发与MCU开发有何不同?下篇

感情迁移 提交于 2020-04-02 16:27:32
ARM-Linux开发与MCU开发有何不同?下篇 (4)固件的存储位置不同 单片机:通常具备片内flash存储器,固件程序通常存储在该区域,若固件较大则需要通过外部电路设计外部flash用于存储固件。 ARM-Linux: 由于其没有片内的flash, 并且需要运行操作系统,整个系统映像通常较大,故ARM-Linux开发的操作系统映像和应用通常存储在外部的MMC、SD卡上,或者采用SATA设备等。 (5)启动方式不同 单片机:其结构简单,内部集成flash, 通常是芯片厂商在程序上电时加入固定的跳转指令,直接跳转到程序入口(通常在flash上);开发的应用程序通过编译器编译,采用专用下载工具直接下载到相应的地址空间;所以系统上电后直接运行到相应的程序入口,实现系统的启动。 ARM-Linux:由于采用ARM芯片,执行效率高,功能强大,外设相对丰富,是功能强大的计算机系统,并且需要运行操作系统,所以其启动方式和单片机有较大的差别,但是和家用计算机的启动方式基本相同。其启动一般包括BIOS,bootloader,内核启动,应用启动等阶段; (a)启动BIOS: BIOS是设备厂家(芯片或者是电路板厂家)设置的相应启动信息,在设备上电后,其将读取相应硬件设备信息,进行硬件设备的初始化工作,然后跳转到bootloader所在位置(该位置是一个固定的位置,由BIOS设置)。(根据个人理解

Android下运行c程序

限于喜欢 提交于 2020-03-30 06:49:50
在android的设计中,谷歌设计了一套专门为嵌入式设备使用的bionic C库,以替换原有的GUN Libc,这个精简的bionic库据说只有200多K,所以如果只想使用这个精简的C库像在linux下一样 开发C程序,基本是不可能的。当然如果只想让其在shell中运行还是可以做到的。 因为编译完的目标程序是在android下运行,就要使用交叉编译的工具,在下面地址下载: http://www.codesourcery.com/gnu_toolchains/arm/download.html 下载完之后,bin目录下的arm-none-linux-gnueabi-gcc就是交叉编译器了 #include <stdio.h> int main() { printf("nihao a\n"); printf("你好 啊\n"); return 1; } 输入一下命令: ./arm-none-linux-gnueabi-gcc hello.c -o hello -static -static选项在这里是必须的,否则会出现”not found”的错误。 然后就可以把编译好的hello传到手机上运行了。不过这里有个前提条件,要求android机器必须是root过的,好像简单的z4root还不行,必须使用更彻底的root方法,关于如何root,这里就不再赘述了,可以参考相关root的帖子。

GDB在ARM板中的应用

依然范特西╮ 提交于 2020-03-25 08:13:53
GDB的下载: http://www.gnu.org/software/gdb/ 下载gdb-7.4.tar.bz2 1.解压: tar xjf gdb-7.4.tar.bz2 2.编译gdb和gdbserver 2.1 编译gdb:    cd gdb-7.4/   .configure -- target=arm-linux //配置    make //编译    make install //安装,注意如果直接运行make install的话,直接撞到pc机的usr/bin中去了。我不想这么直接安装,想看看安装时生成什么东西?    vi makefile,然后搜索prefix,这prefix就是指代安装的路径。因此我可以自定义我的安装路径   mkdir tmp    make install prefix = $PWD / tmp   此时可以去tmp目录下,看一下都生成了什么东西。你会看到有bin include lib share目录。进入bin目录,你会看到arm-linux-gdb的程序。 2.2 编译gdbserver   cd gdb / gdbserver   .configure --host = arm-linux    make    编译的过程中会出现错误:PTRACE GETSIGINFO没有定义。-I表示头文件在哪里。在

ARM在自助终端设备的应用

不想你离开。 提交于 2020-03-13 23:47:02
自助终端经过信息化大潮的推进,也逐渐在我们身边普及开来,如医院挂号、缴费、打印报告单,银行、电信自助办理业务,自助售票、自助点餐取号,自助办理值机等等。自助服务给我们带来的除了减少排队等候外,其24小时无人值守的优势也越发受到运营业主和使用者的青睐。 传统的自助设备大多基于X86架构的电脑运行Windows系统所开发,其因笨重的体积、高成本、高功耗、系统易中病毒崩溃等问题被大家所诟病,也被称为是自助设备更大批量普及的绊脚石。 恰逢此时,ARM的性能也越来越强悍,其软搭档安卓系统的操作界面易用性也被我们所熟悉,逐渐在自助设备领域占据一定份额。 ARM以其低成本、低功耗、小体积、高稳定性的优势,可以正中要害地打碎自助设备的绊脚石,实现更广的自助化,让我们的生活、生产可以更便利、更高效、成本更低。 在此,笔者以OK3399-C ARM主板(右)和i3四代的X86主板(左)为例,从硬件成本、软件成本、功耗散热、体积、维护成本这5个方面做个对比: ▲X86主板 ▼OK3399-C 1、硬件成本 X86,i3-4025U CPU,4G RAM,64GB SSD的配置,可以保证Win10系统流畅运行的基本配置,售价大约在1200左右;而ARM,RK3399 CPU,2G RAM,16GB ROM的配置,运行Android系统非常流畅,甚至都可以完成人脸识别应用,售价在899RMB左右。

鸿蒙系统的源码,请需要的同志查看

一个人想着一个人 提交于 2020-03-11 06:59:07
https://github.com/Awesome-HarmonyOS/HarmonyOS 其中,只有LiteOS比较多些,具体为:学单片机和嵌入式的同志可以学习下 LiteOS代码入口 LiteOS入口在工程对应的main.c中,基本流程如下: int main(void) { UINT32 uwRet = LOS_OK; HardWare_Init(); uwRet = LOS_KernelInit(); if (uwRet != LOS_OK) { return LOS_NOK; } LOS_Inspect_Entry(); LOS_Start(); } 首先进行硬件初始化 HardWare_Init(); 初始化LiteOS内核 LOS_KernelInit(); 初始化内核例程 LOS_Inspect_Entry(); 最后调用LOS_Start();开始task调度,LiteOS开始正常工作; LiteOS的代码目录结构说明 关于代码树中各个目录存放的源代码的相关内容简介如下: 一级目录 二级目录 三级目录 说明 arch arm arm-m M核中断、调度、tick相关代码 common arm核公用的cmsis core接口 components cmsis LiteOS提供的cmsis os接口实现 connectivity agent_tiny agent

arm-linux的gdb移植

南楼画角 提交于 2020-03-09 07:16:36
转载于:http://blog.chinaunix.net/uid-23381466-id-309369.html arm-linux 的gdb移植分为两种情况.一种是交叉调试版。 这一种模式是需要编译一个arm-linux版本gdbserver (GDB的stub模块).然后再编译一个X86版本交叉调试的gdb.为了与桌面版本身的gdb 区别开来,一般改名为 arm-linux-gdb。两者通过串口或者网络进行互联。 还有一种是干脆把整个gdb移植成一个ARM的本地版。在开发板上直接用gdb来调试。 前一种方法是比较正统的方法。它gdbserver可以通过arm-linux-gdb直接在host上单步调试target的应用程序。.并且可以与图形界面调试器配合进行图形界面调试。缺点就是target资源较少。因此单步调试的速度并不是太快。因此实用性不算太强。 如何交叉调试 arm-linux的本地版一般只能做字符界面的。界面没有支持GUI的交叉调试版友好。而且单步调试速度也不算快。但是有几大大优点: 1.定位程序退出所在函数. 2.判断程序退出的原因 3.通过条件断点分析异常情况时运行环境. 用本地版gdb运行程序时,当程序因段错误或其它原因退出程序时。可以通过gdb bt(即backtrace)来查看最后运行的堆栈。来判断出错时是在哪一个函数里退出。这样会大大加快定位错误的速度

Arm及Arm Cortex-M处理器

允我心安 提交于 2020-03-08 09:47:31
https://mp.weixin.qq.com/s/sRio4NPTSj4oVq2YtM_c1g 1 Arm 处理器架构 从大的方面讲,Arm公司共出过八种处理器架构,其中V1-V3架构,是ARM诞生之初的架构,已经过时而废,目前最新的架构师V8,V9也许不久的将来会发布。其中V6,V7,V8架构又分为M系列,A系列和R系列。 2 Arm 处理器 早期的处理器现在被称为经典处理器,例如曾经广泛使用的arm7/arm9/arm11处理器。现在主要的是Arm Cortex 系列,又分为3类: Cortex-M: 嵌入式处理器 Cortex-A: 应用处理器 Cortex-R: 实时处理器 上图中Cortex-M系列没有罗列出M23,M33,M35P以及M55。 3 Arm Cortex处理器ARM A, R,M系列处理器应用领域不同,这是由这些处理器的特点决定的。 4 Arm Cortex-M处理器 在嵌入式领域,Cortex-M处理器被广泛使用。Cortex-M处理器系列针对低成本和高能效的微控制器进行了优化。这些处理器可用于各种应用,包括物联网,工业和日常消费类设备。 目前ARM Cortex-M最新的处理器是Cortex-M55,Arm Cortex-M55处理器是具有AI功能的Cortex-M处理器,并且是第一个采用Arm Helium矢量处理技术的功能

ARM嵌入式系统

眉间皱痕 提交于 2020-03-02 10:10:28
一、常见的ARM嵌入式系统开发环境配置: 1、编译器/汇编器 2、指令系统模拟器 3、在线仿真器或调试探测器 4、目标开发板 5、跟踪捕捉仪 6、嵌入式操作系统 ARM嵌入式系统C编译器:ARM公司,keil公司,IAR System公司,lauterbach公司。 二、ARM嵌入式系统的硬件构成 ARM嵌入式芯片主要由32位ALU、31个32位通用寄存器和6个状态寄存器、32x8位乘法器、32x32位桶形移位寄存器、指令译码及控制逻辑、指令流水线和数据/地址寄存器组成。 在ARM处理器结构中,使用流水线技术以提高处理器指令的运行速度。在流水线操作中,允许多个操作同时进行,以及处理和存储系统连续操作。 三、ARM硬件配置 Cortex-M3是一个32位ARM处理器内核。内部的数据宽度是32位的,寄存器的接口同样也是32位的。与常用的ARM嵌入式处理器一样,Cortex-M3采用了哈弗结构,拥有独立的指令和数据总线,可以同时进行取地址操作和数据访问操作。 采用哈佛结构的数据/指令储存方式,处理器在访问数据的时候不再占用数据总线,从而提升了系统处理的性能。为进一步提高ARM处理器的处理能力,CM3的内部结构中包含了多条总线接口方式,每条总线都专门为特定的应用场合进行综合优化,并可以多条总线并行工作。 1、CM3中的寄存器组 在CM3处理器中包含了R0~R15寄存器组,其中

嵌入式课堂整理1

≯℡__Kan透↙ 提交于 2020-03-01 17:05:19
一、嵌入式开发概述 1.嵌入式技术是什么? 答:在已有的硬件上移植操作系统;在操作系统之上做上层应用开发,在操作系统之下做底层开发。 2嵌入式软件与非嵌入式软件的区别? 答:最大的区别是有无操作系统。嵌入式技术有操作系统,非嵌入式没有操作系统。 3.嵌入式开发与单片机开发的区别? 答:嵌入式开发有操作系统,单片机开发属于传统开发,只有软件和硬件,没有操作系统。 4.传统开发的缺点? 答:软件移植能力差(适配平台能力差);开发人员能力要求需要软硬件掌握的都很好。 5.嵌入式开发的优点? 答:嵌入式在软硬件之间加入了操作系统;操作系统具有管理软件资源和硬件资源的作用。属于多任务机制,提供了丰富的网络协议,提供了开源软件和库。 二、嵌入式开发方向 1.嵌入式上层应用软件开发。(精通一门语言;熟悉一款操作系统;熟悉数据结构算法) 2.嵌入式底层系统软件开发。(精通C语言;理解操作系统的实现;熟悉硬件的工作原理;熟悉汇编) 3.嵌入式工程师。 三、作业 CPI体系结构的种类、特点及应用场景?(内容参考csdn的博主@printfd) 1、ARM ARM架构,过去称作进阶精简指令集机器(Advanced RISC Machine,更早称作:Acorn RISC Machine),是一个32位精简指令集(RISC)处理器架构,其广泛地使用在许多嵌入式系统设计。 特点:体积小、低功耗、低成本