tag 标签: arm7

相关博文
  • 热度 20
    2012-10-10 00:13
    2069 次阅读|
    0 个评论
    使用ADS1.2和JLink调试LPC2136时出现了以下提示信息:   --------------------------- J-Link RDI V4.08k Warning --------------------------- Software interrupt (SWI) 0xFFFFEF occured in ARM mode @ address 0x4000009C. This SWI is not used for semihosting, but causes the CPU core to be halted. Do you want the core to be automatically restarted when this happens ? NOTE: Clicking on 'yes' will prevent this message from popping up, but the core will still be halted every time. If your application requires semihosting as well as having its own SWI handler, you should set the semihosting vector to an address in your SWI handler. This address must point to an instruction that is only executed if your SWI handler has identified a call to a semihosting SWI. All registers must already have been restored to whatever values they had on entry to your SWI handler. For more information on semihosting and SWIs, please refer to the ARM ADS debug target guide. --------------------------- 是(Y)   否(N)   取消   --------------------------- 经排查,是Startup.s文件中的问题:   LDR  R2,=MEMMAP    ; REMAP操作        MOV  R1,#0x02   STR  R1, 这三句前面不能有分号,即不能被屏蔽掉。 原因不是很清楚,所以想要弄明白的自己去探索吧。。。 我就不误人子弟了!                                                                 2012-10-10
  • 热度 26
    2012-8-23 14:27
    1232 次阅读|
    0 个评论
      随着微控制器处理能力的不断增强,嵌入式系统的功能需求也越来越多,监控系统已经网络化,基于以太网的嵌入式系统设计成为设备必要。本文以ARM7系列LPC2214微控制器和W5300以太网控制器为主要硬件,UDP为协议,阐述其硬件设计、软件设计。 在线阅读及下载全文请点击:http://www.cqvip.com/qk/86584x/201009/33795108.html 本文作者是来自中国电子科技集团第十研究所的谭开洪,全文发表在《中国西部科技》2010年第9期。      更多有关W5300的博文请看这里: W5300相关视频http://blog.iwiznet.cn/?page_id=482 培训笔记之WIZnet的主要产品是什么?http://blog.iwiznet.cn/?p=390 W5300E01-ARM用户手册版本1.0(二)http://blog.iwiznet.cn/?p=86 WIZnet员工Richard培训笔记: WIZnet核心技术和产品对比 http://blog.iwiznet.cn/?p=29   也可进入我们的官方网站或博客查看更多。 如果您对WIZnet的产品或是技术感兴趣,请随时与我们联系。 可以直接留言或登录WIZnet官方网站:http://www.iwiznet.cn 公司微博是: http://weibo.com/wiznet2012 公司博客是:http://blog.iwiznet.cn/
  • 热度 24
    2012-8-13 21:17
    2324 次阅读|
    0 个评论
    3. 向量非向量IRQ实例程序 /**************************************************************************** * 文件名:main.c * 功 能:有四个中断,UART0,UART1,I2C,SPI0,其中 * UART0,SPI0分配为向量IRQ * UART1,I2C分配为非向量IRQ * 说 明: ****************************************************************************/ #include "config.h" #define UART1_IRQ 1 7 #define I2C_IRQ 1 9 /**************************************************************************** * 功 能:中断服务程序。 ****************************************************************************/ void __irq IRQ_SPI0(void) { 代码略 } void __irq IRQ_UART0(void) { 代码略 } void __irq NoVector_ISR(void) { volatile uint32 tmp; tmp = VICIRQStatus; if( tmp UART1_IRQ) { UART1中断处理代码略 } if( tmp I2C_IRQ) { I2C中断处理代码略 } VICVectAddr = 0; // 向量中断结束 } /**************************************************************************** 【By 下家山 Q群 75303301        上海松江文汇路928号258室    松江大学城 上海索漫科技  http://www.xiajiashan.com  专注嵌入式(ARM7,Cortex-M0,Cortex-M3,ARM9,linux)培训】 ****************************************************************************/ int main(void) { PINSEL0 = 0x55555555; // 配置管脚功能 /*I2C,SPI0,UART0,UART1相关初始化代码部分略 */ /* 中断部分设置*/ VICIntSelect = 0x00000000; // 所有中断通道设置为IRQ中断 VICDefVectAddr = (uint32)NoVector_ISR; // 设置非向量中断服务程序地址向量 VICVectAddr0 = (uint32)IRQ_UART0; // 设置uart0中断服务程序地址向量 VICVectAddr1 = (uint32)IRQ_SPI0; // 设置spi0中断服务程序地址向量 VICVectCntl0 = 0x00000026; // 6号中断源使能为向量IRQ并设置为最高优先级 VICVectCntl1 = 0x0000002A; // 10号中断源使能为向量IRQ并设置为次高优先级 VICIntEnable = 0x000006C0; /* 使能UART0,UART1,I2C,SPI0=bit10,bit9,bit7和bit6=1*/ while(1) // 等待中断发生 { 代码略 } return(0); }  本文的一些截图来自philips lpc2136英文datasheet. 写于上海松江                    下家山   有什么问题可与我联系:1209050967 上海索漫提供 http://www.xiajiashan.com IRQ中断实例分析(一):向量IRQ实例程序 IRQ中断实例分析(二):非向量IRQ实例程序 IRQ中断实例分析(三):向量非向量IRQ实例程序  
  • 热度 21
    2012-4-4 12:31
    3522 次阅读|
    1 个评论
    ARM7中断原理的最基本部分与单片机是一样的,如果对单片机中断原理比较熟悉,再来理解ARM7的中断原理是顺理成章的事情。 1.中断向量表 下面以Philips的lpc2136为例进行比较深入的分析: 我们在用ads1.2调试开发板时,有一个startup.s的汇编程序,这个程序就是lpc2136得以运行的启动代码,是及其重要的一部分,蕴含着ARM7的精髓。 其中,有这样一段代码: AREA vectors,CODE,READONLY ENTRY ;interrupt vectors ;中断向量表 Vector_Init_Block LDR PC, Reset_Addr LDR PC, Undefined_Addr LDR PC, SWI_Addr LDR PC, Prefetch_Addr LDR PC, Abort_Addr DCD 0xb9205f80 LDR PC, LDR PC, FIQ_Addr Reset_Addr DCD Start_Boot Undefined_Addr DCD Undefined_Handler SWI_Addr DCD SWI_Handler Prefetch_Addr DCD Prefetch_Handler Abort_Addr DCD Abort_Handler Nouse DCD 0 IRQ_Addr DCD 0 FIQ_Addr DCD FIQ_Handler ;未定义指令 Undefined_Handler B Undefined_Handler ;软中断 SWI_Handler B SWI_Handler ;取指令中止 Prefetch_Handler B Prefetch_Handler ;取数据中止 Abort_Handler B Abort_Handler ;快速中断 FIQ_Handler STMFD SP!, {R0-R3, LR} BL FIQ_Exception LDMFD SP!, {R0-R3, LR} SUBS PC, LR, #4 下面的这个截图来自ads1.2安装后的“online book”里面(这里面有很多非常重要的知识,你不懂的任何疑问都可以在此找到答案,可惜很多人不知道这个好地方)   ARM体系设计有八种异常,并把所有现象用异常来表达,我们的代码任何时刻都在这八种异常中运行。 我们给开发板上电,这就是一种“异常”,这种异常用”Reset”来表示。 这八种异常对应八个地址: Reset(复位)=========0x00000000(当上电,或按下开发板的复位键时,程序跳到该地址运行) Undef(未定义指令)=========0x00000004(当程序指针访问地址出现未定义指令,程序跳到该地址运行) SWI(软件中断)=========0x00000008(当发生软件中断,程序跳到该地址运行) Prefetch Abort(预取指中止)=========0x0000000C(当预取值失败,程序跳到该地址运行) Data Abort(数据中止)=========0x00000010(当访问数据区失败,程序跳到该地址运行) Reserved(保留)===========0x00000014 IRQ===========0x00000018(当发生IRQ中断时,程序跳到该地址运行) FIQ(快速中断)========0x0000001C(当发生快速中断时,程序跳到该地址运行) 2 FIQ中断,向量IRQ,非向量IRQ区别 FIQ是指快速中断请求(Fast Interrupt reQuest),具有最高优先级,一般只声明一个中断源为FIQ,这样可以得到最快的相应速度,如果非要申请多个中断源为FIQ,那么当中断发生时,FIQ中断线程通过读取FIQ状态寄存器来判断当前发生的是那个中断。 向量IRQ(Vector IRQ)是指向量中断请求(Vector Interrupt ReQuest)。具有次高优先级。 非向量IRQ(NO_Vector IRQ)是指非向量中断请求。具有最低优先级。 (未完待续)
  • 热度 16
    2011-3-1 17:43
    1223 次阅读|
    0 个评论
    基于LH79520的线缆自动测试仪设计方案 0 推荐 1 引言 在现代装甲通信指挥装备中,功能强大、控制精确、运行可靠的装备,均由越来越多的电子分机、部件通过密集的线缆、线束、网络连接而成。 线缆、网络连接的正确性和可靠性,在保障整个电子系统可靠运行中起了重要的作用。对复杂线缆、线束、网络的导通、绝缘等指标的自动测试和检验,是线缆装 配、生产过程中不可缺少的一个环节。传统的低压、低电流的手工、半自动测试,已经远远不能满足现代高可靠电子设备生产的需要。 目前装甲通信指挥装备的线缆检测,均采用传统的、落后的手工检测方式,用三用表、蜂鸣器及自制简单的测试台检测通断。手工检测方法存在不能克服的许多缺陷,已不能满足大批量、高精度、高可靠性线缆检测的要求: (1)1人或2人配合逐点检测,效率低、速度慢、工作量大、精细、繁琐、枯燥、易疲劳,需对照图纸、接线表、芯线号,极易造成漏检、错检。 (2)只能检测通路,不能在数十芯线缆中检测出短路(即错接、多接)。 (3)一般只检测通断,不检测导通电阻,不能查出接触不良、不可靠的接点。 基于上述原因,目前急需研制一种能进行自动测最装甲通信指挥装备电缆的专用检测设备。 2 系统设计原理 系统结构如图1所示。 各部分功能块功能如下: 2.1 PC机 PC机的主要功能是内置“电缆管理系统”,包括:电缆型号、规格,插座型号规格、电缆型谱等,以及测试检测结果的存贮与分析等功能。 2.2 主机 主机中存有从“电缆管理系统”通过串口下载的所测电缆的型谱,最多可存150种电缆的型谱,测试时不需与PC机相联,显示方式采用320×240宽温LCD显示屏。测试时主机通过无线按被选中的被测电缆的型谱向从机发送测试命令,主机与从机实时配合完成测量。 2.3 从机 从机由程控开关矩阵及负载组成,接收主机的测试命令。 2.4 电缆专用转换接头 电缆专用转换接头是将被测电缆通过该转换接头分别与主机和从机连接,完成测量,每一种被测电缆需要定制一对转换接头。 3 系统平台上的硬件系统 主机由主控单元、收发单元、开关矩阵、显示与键盘、电源等组成,其结构如图2所示。 3.1 LH79520简介 LH79520是基于32位ARM7核的一体化系统集成芯片(SoC),他包括一个由ARM公司设计的32位ARM7TDMI RISC处理器核,Cache RAM,一个写缓冲以及存储管理单元。具有低功耗、高性能的特点。 3.2 显示控制板框图 显示控制板框图如图3所示。   显示与键盘控制系统由CPU、显示、键盘、RS 232接口及数据交换组成。其中CPU为LH79520,为了满足储存部分数据的需要而使用了32 kB的E2PROM作为数据存储器来存储部分测试结果。显示部分采用了OKI公司的MSM6255作为显示控制器,外接32 kB的RAM作为显示数据的存储器,MSM6255产生的行同步信号、场同步信号、显示数据被送往EL显示屏。键盘部分用8279作键盘控制器。为实现外 接计算机对仪器的控制,系统中使用厂MAX202作为接口电平转换控制,以RS 232接口与外部连缓。 3.3 从机框图 从机框图如图4所示。收发模块采用以nrf401单片收发模块为核心加上外围电路所构成,工作频率为133.92 MHz,调制方式为FSK,最大传输速率20 kb/s。内置天线,最大直线传输距离为100 m。 凯瑞斯通科技 http://www.crest-cn.com/ 地址:北京市丰台区科技园海鹰路5号赛欧广场317室 电话:010-63721352 63721362 63729546 63729347 传真:010-63721362     深圳:13537857146 4 系统平台上的软件系统 4.1 通断测试算法设计 4.1.1 建立端口关系矩阵 端口关系矩阵设计如表1所示。 注:(1)该矩阵用于芯和端口的对应关系描述;   (2)N=61:   (3)该矩阵对应电缆型谱;   (4)上三角阵有效,包括对角线;   (5)0:表示不连接;1:表示连接;X:表示无效。 4.1.2 建立线缆关系矩阵 注:(1)该矩阵用于短路判断(结果写入表2)和部分通路判断(结果写入表3);   (2)M为电缆最大芯数(2≤M≤61);   (3)上三角阵有效,不包括对角线;   (4)0:表示无效;   (5)X初始为0;X=3短;X=4测量失败(无线通信出错)。 4.1.3 短路测量 从线缆关系矩阵的第一行开始,逐行扫描上三角阵。 测量过程中,若结果为短路,置X=3,若结果为测量失败,置X=4,继续。 扫描测量过程中,若结果为通,将通的两芯LX和HY中的芯号对应基准测量列表的列号做变换。 基准测量列表(表3)列号:    =LX; =HY 置基准测量列表列号 和 的状态X=1,继续X=1逐行扫描上三角阵。 基准芯定义:任意两芯测量为通的其中一芯为基准芯。 该列表用于通和断结果的存储。 X初始为0;X=1为通;X=2为断;X=4测量失败(无线通信出错)。 扫描表3找基准芯,若全部X为0则线缆全部为断;若X为1则将对应的LX列号作为基准芯。 用基准芯去判断表3中X为0的芯,若为通,置X=1;若为断,置X=2;若为测量失败,置X=4。 4.1.4 电缆通断测量的处理流程 5 结 语 通断仪可对2~60芯以内的专用电缆进行自动测量,主要特点有:   (1)自动、快速榆测电缆通断,750点/s测试速度使数十芯的复杂线缆能在数秒中完成通断检测。   (2)自动分组排列组合短路测试,检测出所有可能存在的短路错误(即错接、多接)。   (3)程序控制自动测试过程,可随时多次检测线缆,便于质量管理,大大提高工作效率。   (4)检测出接点电阻微小变化,查出接触不良、导线芯线断股、并联线漏接等质量隐患。   (5)使用方便.只需单人操作,人机界面友好,手持式检测设备,超低功耗。   (6)可存贮512种电缆的型谱,型潜输入可通过通信接口从PC机中下载,测量结果可以存贮,并传送至管理系统。
相关资源