推荐阅读最新更新时间:2024-05-03 02:36
ARM Cortex-M3中断跳转过程
在学习CM3的时候,仔细学习了CM3的中断跳转过程,发现嵌入式的MCU在这一块基本上是一样的,当然不同架构的MCU也有自己的特性。 我来介绍下CM3的中断跳转过程,首先假设中断发生,CM3内核开始响应中断,由于不同厂家的CM3可能略有区别,但CM3的内核肯定是一样的,所以我们在这个前提下开始讨论,暂时把中断屏蔽位,标志位之类的东西放在一边。 现在介绍中断响应的过程: 1、压栈。从这一点来讲几乎所有的处理器都是一样的,用压栈保护现场。压入哪些寄存器呢,又是怎样一个顺序?如果就大多数的C语音编程来讲,这个不是很关心的内容。但是CM3的压栈寄存器特点,让我们来见识下ARM设计的特点。其压栈顺序如下图所示,请注意压栈的地址顺序
[单片机]
ARM汇编语言学习笔记(二)跑个灯程序以及.s文件分析
一、汇编语言怎么写 我们都知道,c语言可以写成c语言然后编译。那么汇编语言了? 汇编语言用汇编语言写,然后写出来为.s文件。所以我们只需要任意一款可以编写.s文件的编辑器就可以啦,例如:source insight、notepad等。 二、写一个试试 /* * 点亮LED1: gpf4 */ .text .global _start _start: /* 配置GPF4为输出引脚 * 把0x100写到地址0x56000050 */ ldr r1, =0x56000050 ldr r0, =0x100 /* mov r0, #0x100 */ str r0, /* 设置GPF4输出
[单片机]
微软将推出运行ARM芯片的新版服务器操作系统
据外媒9日报道,微软周三将展示新版服务器操作系统,该操作系统将运行基于ARMHoldings PLC (ARMH)技术的处理器,寻求打破英特尔公司几乎完全主导数据中心芯片领域的统治地位。下面那就随半导体设计制造小编一起来了解一下相关内容吧。 此举对微软而言是一次显著转变,多年来,微软一直与英特尔保持稳定的合作关系,微软服务器Windows Server一直运行基于英特尔技术设计的芯片。 微软在一篇为周三产品发布而准备的博客中称,公司已与智能手机芯片主要供应商高通公司(Qualcomm Inc., QCOM)和知名度稍低的硅谷芯片生产商Cavium Inc. (CAVM)合作,使Windows Server适配其AR
[半导体设计/制造]
ARM之GPIO介绍(Exynos4412平台)
GPIO 概述:GPIO的英文全称是General-Purpose Input/Output,也就是通用输入输出。在微控制器芯片上一般都会提供一个“通用可编程IO接口”,即GPIO.接口至少有两个寄存器,即“通用IO控制寄存器”和“通用IO数据寄存器”。 特性 46个可中断通用控制I/O; 172个外部中断; 32个外部可唤醒中断; 252个多路复用I/O口; 睡眠模式引脚状态可控(除了GPX0,GPX1,GPH2,GPH3); GPIO常用寄存器 引脚控制寄存器(GPxCON x=A0~V4) 在exynos4412中,大多数的引脚都是功能复用的,所以必须对每个引脚进行配置。引脚控制寄存器(GPxCON)用来配置每个引脚
[单片机]
IDC:iPad和其他ARM设备可以归类为个人电脑
具有影响力的市场研究公司IDC开始将基于ARM的移动处理器和英特尔PC处理器列为一类。此前,基于ARM的智能手机和平板电脑处理器与基于英特尔 PC处理器并不归属一类。CNET转达IDC的研究报告中说:IDC第一次预测PC微处理器将包括基于x86(Intel和AMD)和其他基于ARM的处理器。 IDC并没有透露这样的改变是否意味着iPad将被划分为个人电脑设备。如果是这样,个人电脑销售量接连下降的形势将会发生改变。IDC预计,到2015年将有超过百分之十的PC处理器基于ARM设计。 基于ARM设计的处理器经常将图形核心、内存控制器等结合在一起,这样的设计大大节约了移动设备的空间,并且可以在功耗控制方面做得更好。
[手机便携]
基于IPv6和ARM9的地震烈度计开发
以低功耗微型电容式三轴向加速度传感器作为传感部件,采用基于ARM9的嵌入式系统并定制Linux作为总控系统,选择符合802.11b标准的无线通讯技术作为仪器的网络接入方式,研制完成基于无线IPv6的SI一2型地震烈度计,实现了地震烈度的网络化、数字化观测,解决了我国缺乏直接测定地震烈度仪器的问题。 引 言 当前国内外已建设的城市地震灾害速报系统一般以地震烈度计观测系统为主体。日本东京煤气公司在1994年就完成了由331台谱烈度计、20台液化传感器和5台强震仪构成的地震监测与震害快速评估系统(SIGNAL)。阪神地震取得显著的减灾效益后,东京煤气公司于1997年~2007年的十年间布设了3 800个新型地震谱烈度计。
[单片机]
ARM学习笔记(三)时钟分频器设置
主程序里: ChangeClockDivider(key, 12); //key=14 cal_cpu_bus_clk(); 找到函数: //************************ *************************** void ChangeClockDivider(int hdivn_val,int pdivn_val) { int hdivn=2, pdivn=0; // hdivn_val (FCLK:HCLK)ratio hdivn // 11 1:1 (0) // 12 1:2 (1) // 13 1:
[单片机]
ARM9 (2440A) 从启动代码到应用程序(Main) 1
ARM9(2440A) 从启动代码到应用程序 说一下从启动代码到Main函数的过程,以及到了Main还需要设置些什么,才算是一个完整的应用程序。 启动代码 我们知道,uboot的第一阶段的功能是:(1)定义入口;(2)设置异常向量(exception vector);(3)设置CPU的速度、时钟频率及中断控制寄存器;(4)初始化内存控制器 ;(5)将rom中的程序复制到ram中;(6)初始化堆栈;(7)转到ram中执行; 其实我们要实现的启动代码功能也就是实现这些功能,最后跳转到我们自己的应用程序入口。只是这里的启动代码,我们不用uboot来实现,可以说是根据自己的需求来实现,毕竟uboot代码量不小。 keil下创建
[单片机]