arm嵌入式

ARM与MIPS比较

依然范特西╮ 提交于 2019-12-01 07:29:29
ARM MIPS 安全性总览 基于trust zone构建,区分为一个安全世界与一个正常世界,正常世界不可以访问安全世界的存储空间等部件,正常世界信任安全世界,安全世界中的指令互相信任。 基于虚拟化CPU的硬件,允许存在多个域,并且每个域都是独立被保护的,互相不信任其他域中的软件或是数据,MIPS-VZ最多允许255个独立域。这些域运用于不同的模式下:内核模式以及用户模式。 ARMv8-M和MIPS-VZ都使用了额外的执行执行模式给与most trusted code以更多权限,同时减少less trusted code的权限 存储管理中的安全性 ARMv8-M使用了两个模块解决存储单元访问问题,分别是SAU(安全属性单元)以及MPU(存储保护单元)。SAU检查安全/不安全模式,然后MPU在不同模式下利用不同的权限访问,这两个单元基于地址比较器 是用了有如下两个特点的MMU:1.大系统区分为客人TLB和根TLB的两层TLB系统,分别给客户OS与内核软件使用。2.小系统区分为两级MMU,客人部分可以是一个完整的TLB也可以是一个固定映射转换单元,根部分将TLB拆成没有物理地址的部分,成为根保护单元(RPU). 这种MMU基于CAM(?),较好地提供了应用软件与操作系统之间的绝缘。 不同安全域之间的例程调用 ARMv8-M拥有一种不使用SMC(secure monitor call

arm交叉编译工具

拟墨画扇 提交于 2019-12-01 04:20:12
编译工具命名规则 交叉编译工具链的命名规则为:arch [-vendor] [-os] [-(gnu)eabi] arch - 体系架构,如ARM,MIPS vendor - 工具链提供商 os - 目标操作系统 eabi - 嵌入式应用二进制接口(Embedded Application Binary Interface) 根据对操作系统的支持与否,ARM GCC可分为支持和不支持操作系统,如 arm-none-eabi: 这个是没有操作系统的,自然不可能支持那些跟操作系统关系密切的函数,比如fork(2)。他使用的是newlib这个专用于嵌入式系统的C库。 arm-none-linux-eabi:用于Linux的,使用Glibc 示例 arm-none-eabi-gcc (ARM architecture,no vendor,not target an operating system,complies with the ARM EABI) 用于编译 ARM 架构的裸机系统(包括 ARM Linux 的 boot、kernel,不适用编译 Linux 应用 Application),一般适合 ARM7、Cortex-M 和 Cortex-R 内核的芯片使用,所以不支持那些跟操作系统关系密切的函数,比如fork(2),他使用的是 newlib 这个专用于嵌入式系统的C库。 arm

ARM编辑、编译工具

早过忘川 提交于 2019-11-29 23:48:28
手动编译 编译器问题,肯定是GNU的大名鼎鼎的GCC了,与此相关的什么连接器,汇编器也都包含在内了。 针对arm的GCC,当然就是 arm-linux-gcc 了,我所用的版本就是友善之臂光盘自带arm-linux-gcc 4.4.3。也有资料说也可以用arm-elf-gcc,这个与arm-linux-gcc带的c库不同,是uclibc,更精简更适合嵌入式。 手动编译需要我们自己写 Makefile 文件 ,涉及到编译过程的依赖等细节问题。在我们实际开发中,可以不通过这种方式,但是需要了解这个过程。 自动编译 1 、 ADS1.2 ADS 是 ARM 公司的集成开发环境软件, ADS 包括了四个模块分别是: SIMULATOR ; C 编译器;实时调试器;应用函数库 。 特点: √ C 编译器效率极高;支持 C 以及 C++ ,使工程师可以很方便的使用 C 语言进行开发; √ 提供软件模拟仿真功能 ,使没有 Emulators 的学习者也能够熟悉 ARM 的指令系统; (直接就可以在IDE环境下,通过运行自己编写的汇编或C语言,查看ARM系统中寄存器的情况) √ 配合 FFT-ICE 使用, ADS1.2 提供强大的实时调试跟踪功能 , 片内运行情况尽在掌握; √ ADS1.2 需要硬件支持才能发挥强大功能,目前支持的硬件调试器有 Multi-ICE 以及兼容 Multi-ICE

嵌入式Qt开发环境搭建

假装没事ソ 提交于 2019-11-29 06:36:39
嵌入式Qt开发环境搭建 系统基础环境 系统更新 sudo apt update sudo apt upgrade sudo apt autoremove 安装常用软件 # 安装vim sudo apt install vim -y # 安装net-tools ,想用ifconfig等命令,就要安装,当然好多linux系统自带了,就不用装了 sudo apt install net-tools # 安装git gitk sudo apt install git gitk # 安装 32bit 库, 这个是必须安装的 sudo apt install lib32ncurses5 lib32z1 # 安装ssh-server,方便ssh登录 sudo apt install openssh-server # 安装g++ gcc (7.4) sudo apt install g++ gcc # 安装make sudo apt install make 安装markdown编辑工具,我使用的是typora,在这里就推荐这个了,这个是个人习惯,想用啥就安装啥了,建议尽量文档用markdown书写 # or run: # sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys BA300B7755AFCFAE wget -qO

DE1-LINUX运行

孤街浪徒 提交于 2019-11-28 15:49:54
搭建交叉编译环境,即安装、配置交叉编译工具链。在Ubuntu环境下编译出嵌入式Linux系统所需的操作系统、应用程序等,然后再上传到目标机上。 交叉编译工具链是为了编译、链接、处理和调试跨平台体系结构的程序代码。对于交叉开发的工具链来说,在文件名称上加了一个前缀,用来区别本地的工具链。例如,arm-linux-表示是对arm的交叉编译工具链,arm-linux-gcc表示是使用gcc的编译器。除了体系结构相关的编译选项以外,其使用方法与Linux主机上的gcc相同,所以Linux编程技术对于嵌入式同样适用。不过,并不是任何一个版本拿来都能用,各种软件包往往存在版本匹配问题。例如,编译内核时需要使用arm-linux-gcc-4.3.3版本的交叉编译工具链,而使用arm-linux-gcc-3.4.1的交叉编译工具链,则会导致编译失败。 gcc和arm-linux-gcc的区别就是gcc是linux下的C语言编译器,编译出来的程序在本地执行,而arm-linux-gcc用来在linux下跨平台的C语言编译器,编译出来的程序在目标机(如ARM平台)上执行,嵌入式开发应使用嵌入式交叉编译工具链。 命名规则 交叉编译工具链的命名规则为:arch [-vendor] [-os] [-(gnu)eabi] arch - 体系架构,如ARM,MIPS vendor - 工具链提供商 os -

嵌入式linux裸板开发--点亮LED

萝らか妹 提交于 2019-11-28 03:05:46
上一篇文章写的是linux下通过gcc完成程序源文件的编译执行的过程。以及makefile文件的编写,最后在终端平台输出myhello word! 有了这个基础,这次学习的就是通过linux编译生成的代码在ARM上完成硬件实现。因为还不涉及到系统移植,所以还是裸板程序开发。 1.源代码编写 ARM裸板程序需要代码原料主要包括:汇编文件,C文件,makefile文件。每个文件都有各自功能。 (1)汇编文件 完成关看门狗;配置时钟;初始化sdram;设置栈;以及跳转到C函数执行入口(相当于main函数),代码如下(该例程不需要配置时钟和sdram)。 @****************************************************************************** @ File:crt0.S @ 功能:通过它转入C程序 @****************************************************************************** @注:正常汇编程序还需要初始化时钟,SDRAM功能,但对于点亮LED不需要。直接使用12Mhz .text .global _start _start: @程序代码段开始处,各段在链接脚本定义 ldr r0,=0x53000000 @看门狗控制寄存器地址

ARM的介绍和选择

故事扮演 提交于 2019-11-28 02:37:15
http://hi.baidu.com/hieda/blog/item/5457fd01c452dfd2267fb54e.html ARM公司以及ARM芯片的现状和发展,从应用的角度介绍了ARM芯片的选择方法,并介绍了具有多芯核结构的ARM芯片。列举了目前的主要ARM芯片供应商,其产品以及应用领域。举例说明了几种嵌入式产品的最佳ARM芯片选择方案。 关键词:ARM MMU SOC RISC CPU =============================================================== 1 ARM芯片选择的一般原则 2 多芯核结构ARM芯片的选择 3 主要ARM芯片供应商 4 选择方案举例 ARM公司自1990年正式成立以来, 在32位RISC (Reduced Instruction Set Computer CPU开发领域不断取得突破,其结构已经从V3发展到V6。由于ARM公司自成立以来,一直以IP(Intelligence Property)提供者的身份向各大半导体制造商出售知识产权,而自己从不介入芯片的生产销售,加上其设计的芯核具有功耗低、成本低等显著优点,因此获得众多的半导体厂家和整机厂商的大力支持,在32位嵌入式应用领域获得了巨大的成功,目前已经占有75%以上的32位RISC嵌入式产品市场。在低功耗

opencv 移植到迅为IMX6开发板

泄露秘密 提交于 2019-11-27 07:56:26
OpenCV 是目前开源项目中最著名的基于机器视觉方向的图像处理的开发包,目前已经有被移植到嵌入式Linux 环境上。本文介绍了OpenCV 交叉编译的基本步骤。 一、编译环境及库文件 linux 环境:ubuntu12.04 交叉编译:4.3.2 arm 板子:IMX6Q 开发板 libz: libjpeg: libpng: libyasm: opencv: libx264: libxvid: lffmpeg: cmake: 二、opencv-2.4.9 的移植过程 1、libz 的交叉编译: # ./configure --prefix=/usr/local/arm/4.3.2/arm-none-linux-gnueabi/zlib-install --shared 修改makefile CC=arm-linux-gcc AR=arm-linux-ar RANLIB=arm-linux-ranlib CDSHARED=arm-linux-gcc -shared -wl, -soname,libz.so.1,--version-script,zl lib.map (不一样没关系只改前面编译器) #make #make install 2、libjpeg 的交叉编译: #./configure --host=arm-linux --prefix=/usr/local/arm/4.3

学单片机还有前途吗?

↘锁芯ラ 提交于 2019-11-27 03:04:45
单片机,嵌入式大量的充斥在我们的生活中,几乎方方面面都用得到单片机,确实现在出现了大量32,64位的,但是市场上现在出货量最大的还是8位的51系列。对于一些不复杂的任务,能用51做,还非要上arm吗,所以要根据实际需要来看。所以我个人认为单片机这行,大钱可能挣不着,温饱肯定是没问题的,更深入的可以走,linux+arm。 可以有些朋友给些不同的建议吗?你们觉得呢,单片机有前途吗? 来源: https://blog.csdn.net/weixin_42832780/article/details/99303071

【WinCE】WinCE通过USB与PC同步

我的未来我决定 提交于 2019-11-26 19:24:57
环境 ARM板: TCC8900嵌入式主板 系统:WinCE 6.0 PC系统:WinXP USB连接线:Mini USB 方法 1、在PC安装Microsoft ActiveSync 4.5.0。 2、正常情况下,ARM板与PC之间的同步是自动的。在下图对话框中,选择“是”,然后“下一步”。 3、在下图对话框中,选择“是”,然后“下一步”。 4、在下图对话框,默认不做勾选。 5、连接成功。 来源: https://blog.csdn.net/sunriver2000/article/details/98967232