高效的C编程之: 函数调用(上) 14.9函数调用函数设计的基本原则是使其函数体尽量的小。这样编译器可以对函数做更多的优化。14.9.1减少函数调用开销ARM上的函数调用开销比非RISC体系结构上的调用开销小:·调用返回指令“BL”或“MOVpc,lr”一般只需要6个指令周期(ARM7上)。&midd... 2023-06-13 C编程函数调用ARM__value_in_regs文章软件开发程序设计
高效的C编程之: 变量类型(上) 14.8变量类型ARMC编译器支持基本的数据类型:char、short、int、longlong、float和double。表14.2说明了armcc对C语言所使用的数据类型的映射。表14.2 C编译器数据类型映射C数据类型表示的意义char无符号8位字节数据short有符号16位半字数据int有符号32位字数据long有符号3... 2023-06-13 C编程变量类型armccARM编译器文章软件开发程序设计
高效的C编程之: C循环结构(上) 14.5C循环结构循环体是程序设计与优化的重点考虑对象。本节将着重讲解在ARM上处理for和while循环最有效的方法。14.5.1循环中止首先来看下面的例子,两个不同的循环退出条件,产生的不同汇编代码。C源程序如下所示。intfact1(intn){inti,fact=1;for(i=1;i<=n;i++)fact*=i;ret... 2023-06-13 C编程循环结构循环中止forwhileARM文章软件开发程序设计
高效的C编程之: 浮点运算 14.10浮点运算大多数的ARM处理器硬件上并不支持浮点运算。但ARM上提供了以下几个选项来实现浮点运算。·浮点累加协处理器FPA(Floating-PointAccelerator):ARM上提供了一组协处理器指令专门实现浮点运算。但这需要硬件支持,具体某一处理器上是否有FPA协处理器支持,可以... 2023-06-13 C编程浮点运算浮点累加协处理器FPAARM文章软件开发程序设计
高效的C编程之: 移植问题 14.11移植问题当对源代码使用不同的编译器时,可能会出现一些移植上的问题,这时可以宏将一些ARM特有的关键字“打包”。例如:#ifdef__arm#defineINLINE__inline#defineVALUE_IN_REGS__value_in_regs#definePURE__pure#else#defineINLINE#defineVALUE_IN_... 2023-06-13 C编程移植inlineVALUE_IN_REGSARM文章软件开发程序设计
ARM的开发步骤:看后开发思路会比较清晰了 1 . 做个最小系统板:如果你从没有做过ARM的开发,建议你一开始不要贪大求全,把所有的应用都做好,因为ARM的启动方式和dsp或单片机有所不同,往往会遇到各种问题,所以建议先布一个仅有Flash,SRAM或SDRAM、CPU、JTAG、和复位信号的小系统板,留出扩展接口。使最小系统能够正常运行,你... 2023-06-13 嵌入式ARM开发步骤文章软件开发嵌入式OS
菜鸟学ARM 我不是高手,仍然是菜鸟。但是回想起自己当时的迷茫,特意写了这篇东西,当作给和我一样的兄弟姐妹的帮助吧。问这个问题的人多半不是已经工作的工程师,而是和我一样是学生,所以今天就用我这个菜鸟的眼光来说说我的ARM是如何入门的。一、首先说说ARM的发展 可以用一片大好来形容,... 2023-06-13 ARM嵌入式文章软件开发嵌入式OS
总结:我的ARM嵌入式开发的六步学习法 总结:我的ARM嵌入式开发的六步学习法学习ARM嵌入式开发,尤其对于初学者而言,不应该过早地、过多地将精力用在嵌入式系统移植、Linux内核的研究和学习上,这些诱人的“热点”很容易使初学者迷失方向,进而忽视对基础知识的深入学习。以下是针对Linux系统的ARM嵌入式开... 2023-06-13 嵌入式OSARM操作系统文章软件开发嵌入式OS
linux-2.6.26内核中ARM中断实现详解(1) 看了一些网络上关于linux中断实现的文章,感觉有一些写的非常好,在这里首先感谢他们的无私付出,然后也想再补充自己对一些问题的理解。先从函数注册引出问题吧。一、中断注册方法在linux内核中用于申请中断的函数是requeST_IRq(),函数原型在Kernel/irq/manage.c中定义:int requ... 2023-06-13 linux-2.6.26内核ARM中断文章软件开发Linux
linux-2.6.26内核中ARM中断实现详解(2) 三、中断处理过程这一节将以S3C2410为例,描述linux-2.6.26内核中,从中断开始,中断是如何一步一步执行到我们注册函数的。3.1 中断向量表 archarmkernelentry-armv.S__vectors_STart:swi SYS_ERROR0b vector_und + stubs_offsetldr pc, .LCvswi + stubs_offsetb ve... 2023-06-13 linux-2.6.26内核ARM中断文章软件开发Linux
基于ARM与FPGA的LCD控制器系统设计 随着显示屏技术的不断发展,真彩液晶显示屏以其高分辨率、高对比度及高清晰度等优势逐渐在嵌入式显示系统中占据重要地位。目前,基于嵌入式平台的LCD显控技术的实现主要有两种方式:ARM内嵌LCD控制器和独立的控制器件。但是这两种实现方式都存在着不足之处,内嵌控制器的使用可... 2023-06-13 ARMFPGA文章技术应用光电显示
实现嵌入式系统的准备工作 1.首先确定CPU,在这里为了简单,就选用嵌入式的CPU,比如 arm 系列,之所以用RISC(简单指令集)类型的CPU,其方便之处是没有实模式与保护模式之分,采用线性的统一寻址,也就是不需要进行段页式内存管理,还有就是芯片内部集成了一些常用外设控制器,比如以太网卡,串口等等,不需要像在PC机的主... 2023-06-13 ARMCPU编译器嵌入式文章软件开发嵌入式OS
ARM的嵌入式Linux移植体验之基本概念 引言ARM是Advanced RISC Machines(高级精简指令系统处理器)的缩写,是ARM公司提供的一种微处理器知识产权(IP)核。ARM的应用已遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场。基于ARM 技术的微处理器应用约占据了32位RISC 微处理器75%以上的市场份... 2023-06-13 ARM嵌入式Linux移植体验基本概念文章软件开发Linux
ARM CPU的嵌入式操作系统的几个重要因素 第一是应用。如果你想开发的嵌入式设备是一个和网络应用密切相关或者就是一个网络设备,那么你应该选择用嵌入式Linux或者uCLinux,而不是uC/OS-II。第二是处理器。它可以适合于90~95%的各种嵌入式系统应用。当然,你如果希望更快的实时响应,如高速的A/D转换需要几个微秒以内的... 2023-06-13 ARMCPU嵌入式操作系统几个重要因素文章软件开发嵌入式OS
ARM程序设计优化 程序优化是指软件编程结束后,利用软件开发工具对程序进行调整和改进,让程序充分利用资源, 提高运行效率, 缩减代码尺寸的过程。按照优化的侧重点不同, 程序优化可分为运行速度优化和代码尺寸优化。运行速度优化是指在充分掌握软硬件特性的基础上, 通过应用程序结构调整等手段来... 2023-06-13 ARM程序设计优化文章软件开发
基于DDS的任意波信号发生器机交互系统设计 1 引言信号源作为一种基本电子设备无论是在教学、科研还是在工程技术保障中,都有着广泛的使用。随着科学技术的发展和DDS技术的成熟,基于DDS的任意波信号发生器已成为信号源的主流。目前DDS任意波信号发生器广泛使用中文液晶显示器已成为一个趋势。本文以Hynix公司生产的HM... 2023-06-13 信号发生器ARM人机交互文章技术应用光电显示
基于ARM的大型LED点阵显示系统的设计 大型LED 显示系统是随着计算机及相关微电子、光电子技术的迅猛发展而形成的一种电子广告媒体,它利用发光二极管构成的点阵模块或像素单元组成大面积显示屏幕,主要用于显示字符、图像等信息。它采用低电压扫描驱动,具有: 耗电少、寿命长、成本低、亮度高、故障少、视角大、可... 2023-06-13 ARMLED点阵显示系统文章课设毕设显示类
ARM-Linux一移植必杀技 去年终结了ARM-wince 移植的必杀技,几个简单的要点,现在总结了linux 的关键要点如下,希望大家抛砖。把自己以前移植的wince 和linux 移植的一些简单要点都罗列了,希望大家提出更好的意见,或者指出我笔记的错误。1.uboot传递给linux内核的nfs启动命令行:setenv bootargs mem=64M... 2023-06-13 ARMLinux移植必杀技文章软件开发
初学嵌入式开发ARM的学习方法 这个题目很大,给人一种感觉我好像很成功,其实不然。实际上自己水平不高,甚至很低,但是做过了一些曲折的学习道路,同时把自己真实的学习历程表达出来,希望对后来者有借鉴的意义,甚幸!工作三年、几成废人! 我2000年毕业于华中地区的一个理工科大学,专业是机械电子,我当时已经签了一家... 2023-06-13 初学嵌入式ARM文章软件开发嵌入式OS
基于Cortex-M3处理器的步进电机控制系统 步进电机的控制方式是将电脉冲信号转换为角位移,在未超载的情况下,步进电机的速度和位置分别取决于脉冲频率以及脉冲个数。步进电机控制方便,在众多行业都得到广泛的使用,诸如数控机床、机械包装等机械行业、机器人等电子行业、还有医疗设备等众多领域。在实际的工程应用中,由... 2023-06-13 ARMCortex-M3步进电机文章课设毕设电机类
基于ARM的矩阵键盘设计及其linux驱动实现 (2) 中断的注册和行列初始化在打开键盘时(即open()函数中)实现。注册中断包括:中断号,中断入口程序,中断方式,中断名和代号。关键语句为:request_irq(button_irqs[i].irq,buttons_interrupt,IRQ_TYPE_EDGE_FALLING,button_irqs[i].name,(void*)&button_irqs[i])。IRQ_TYPE_EDGE_FAL... 2023-06-13 ARM矩阵键盘Linux驱动文章软件开发Linux
移动处理器当红,ARM看好嵌入式后续发展 ARM处理器部门负责人Noel Hurley表示,目前行动市场仍是焦点,但嵌入式市场的重要性与日俱增,开发商会持续趁势推出IoT与穿戴式相关产品。ARM处理器部门负责人Noel Hurley表示,近年来行动产品持续推陈出新,从产品设计概念到实际成型的过程不断演进,也让市场上有了多样区块。有鉴... 2023-06-13 移动处理器ARM嵌入式后续发展文章软件开发嵌入式OS
ARM下的触摸屏驱动系统设计 1 引言在我们的日常生活中,无论你是在商场购物,还是在银行存取款,触摸式的自动服务器将能为你提供了方便快捷的服务。这里通过对触摸屏原理的理解和分析,成功的设计出了CPU 与触摸屏芯片之间的硬件连接,并依照硬件和驱动设计的原理,设计出了基于嵌入式Linux 和飞思卡尔i.MX27芯... 2023-06-13 驱动系统触摸屏ARM文章技术应用光电显示
嵌入式操作系统uClinux移植到ARM平台的经验总结 1. 简述针对“如何在以S3C44B0X为核心的ARMSYS开发板上建立uClinux内核移植”的一个总结,其内容包括对Bootloader的功能分析和uClinux2.4.24发行版内核基础上针对S3C44B0X开发板进行修改的重点内容的逐一列举。2. Bootloader2.1 Bootloader概述Boot Loader 就是... 2023-06-13 嵌入式操作系统uClinuxARM操作系统移植文章软件开发嵌入式OS
采用ARM与FPGA芯片实现独立视频源LED显示系统的设计 目前,显示屏按数据的传输方式主要有两类:一类是采用与计算机显示同一内容的实时视频屏;另一类为通过USB、以太网等通信手段把显示内容发给显示屏的独立视频源显示屏,若采用无线通信方式,还可以随时更新显示内容,灵活性高。此外,用一套嵌入式系统取代计算机来提供视频源,既可以... 2023-06-13 FPGALEDARM计算机文章技术应用光电显示