关于ADS容易出错的地方

2020-09-02来源: elecfans关键字:ADS  ARM  编辑

建立工程,编辑源文件,把文件加入工程,设置工程属性、编译与链接选项,make!

Error : A1163E: Unknown opcode

vector.s line 14

14 00000020 Reset_Addr DCD Reset_Handler

。。。

全国人民再次震惊了,世界人民傻眼了。。。

我这次的的确确是在ADS的CodeWarrior中编辑的代码~!为什么!?为什么armassembler又不认识DCD了呢?

关于ADS容易出错的地方

我一个字母一个字母的检查,没有发现错误。我狠狠地在出错的代码前后各敲了一次回车,确保正确换行,还是报错。。。我去掉了Reset_Addr DCD Reset_Handler这条伪操作语句前面的Tab符号,神奇了!!居然不再对它报错了~!!莫非上次也是这个Tab键在作怪,而让我错怪了vim编辑器?

ADS用它的固执再次向自卑的丑男和骄傲的傻妹证实了:好看有什么用?又不能当饭吃~!

天,我在语句前面加一个Tab符号,不过是想代码看起来整齐些,难道爱美也有错嘛~没有规矩,不成方圆,当兵就得有当兵的样,部队就有部队的规矩,要不去当文艺兵得了————写代码就是让代码去当兵,个个理成平头一个样,还谈啥好看哩~想不到,有些时候Tab也是不能乱加的,想让代码整齐清楚的一些小动作,到了ADS这里竟也成了壞習慣了~!

你甭说,这ADS的armassembler/compiler/linker有时候就TMD怪,尽出些只有机器能明白的错误!咋不做个开发环境让机器去coding呢~!看看这条代码:

MCR P15, 0, R1, C1, C0, 0

有错不?非常简单的写协处理器CP15寄存器1的指令,语法和拼写完全没错误!要是ADS对你报错了,你疯不?它还真报错了!

Error :A1151E: Bad register name symbol

boot.s line 107

还好我心理承受能力强,在我疯之前找出了这个用肉眼看不到的错误:将P15,C1,C0全部用小写字母表示就对了!

MCR p15, 0, R1, c1, c0, 0 ;correct now

说到这里,世界人民忍不住都在心里把ADS给***了一把。

原来,对于协处理器的寄存器符号,都必须用小写字母来表示~!My God!What a ***ing world!

天,又遇到新的毛病!前面说一些伪操作语句前面不要TAB,而又有一些伪操作(direcTIve)前还必须要Tab符号或空格~!不信?把AREA还有与之配套的END语句顶格写试试?!ADS跟你报错没商量~!EXPORT/IMPORT前面也一样必须有Tab符号或空格!

使用ADS1.2时,对于汇编文件,如初始化的init.s,每条语句之前都要加一个“TAB”或空格,否则会出现“unkown opcode”错误。

碰到此类问题可以试试以下方法:

1、去掉语句前面的TAB或试试(已知一些伪操作如DCD,EQU语句前不可有TAB符号);

2、在语句前加空格或Tab符号试试(已知AREA,END,EXPORT/IMPORT前必须有空格或Tab符号);

3、大写改成小写(已知协处理器及协处理器寄存器必须用小写字母表示);

4、TAB换空格或空格换TAB等其他各种办法。

汇编中的注释以;开头,C或C++中用//

--------------------------------------------------

ADS下__main()是C语言的内部库函数,在进入用户main()之前完成内部RAM的初始化工作。

-------------------------

由于ARM采用三级流水线结构,因此,当SWI和未定义指令异常中断产生时,程序计数器PC的值还没有更新,它指向当前指令后面第2条指令(对于ARM指令,它指向当前指令地址加8个字节的位置;对于Thumb指令,它指向当前指令地址加4个字节的位置)。这就是为什么当SWI和未定义指令异常中断发生时,处理器将(PC-4)保存到异常模式下的寄存器lr_mode中,这时(PC-4)即指向当前指令的下一条指令。

关键字:ADS  ARM  编辑 编辑:什么鱼 引用地址:http://news.2689mr.com/mcu/ic508628.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:arm的协处理器有几个?ARM协处理器详解
下一篇:深度了解ARM架构基础知识

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

学习ARM+Linux之前讲解用ADS或RealViewMDK调试ARM开发板的原因
在 ARM + Linux 培训班学习,讲师一般首先讲解用 ADS 或 RealView MDK 去调试 ARM 开发板。原因在于:1、掌握 ARM 体系结构。ARM 是一种计算机,掌握其体系结构也就是掌握ARM的工作原理。在大学里一般会开设《微机原理》这门课程,讲解x86计算机的工作原理,并学习x86汇编语言。因为ARM与x86体系结构上的不同,所以学习ARM+Linux之前,要首先掌握ARM这种计算机的工作原理,并学习ARM汇编语言。2、掌握ARM汇编语言。众所周知,汇编语言是低级语言,与计算机硬件关系密切。因为体系结构的不同,ARM汇编语言与x86汇编语言有很大的不同。前几年有一本书
发表于 2020-09-04
采用ADS1293和MSP430单片机的心电信号采集系统的设计与应用
心电信号是一种由心肌收缩而产生,并可提供心脏生理功能变化信息的生物电信号,将测量电极放在身体的不同部位,把不同体表的电位差变化记录下来,就得到了心电图(Electro Cardio Gram,ECG)。由于易于检测且直观性较好,在临床医学中得到较为广泛的应用)。然而传统心电信号采集设备体积较大,不便于实时获取心电信号。因此研究便携式、低功耗的心电信号采集系统有重要意义。本文以低功耗模拟前端ADS1293为基础,结合MSP430系列低功耗单片机设计了一种可用于超低功耗和微型化的心电信号采集系统。1 系统硬件设计心电信号采集系统主要由信号采集前端ADS1293和MSP430单片机控制电路组成。工作原理如下:电极提取的人体心电
发表于 2020-08-27
采用<font color='red'>ADS</font>1293和MSP430单片机的心电信号采集系统的设计与应用
基于stm32f10 ADS1115芯片模转换器 数据采集系统
ADS1115芯片介绍:ADS1115 是具有 16 位分辨率的高精度模数转换器 (ADC),采用超小型的无引线 QFN-10 封装或 MSOP-10 封装。 ADS1115 在设计时考虑到了精度、功耗和实现的简易性。 ADS1115具有一个板上基准和振荡器。 数据通过一个 I2C 兼容型串行接口进行传输;可以选择 4 个 I2C 从地址。 ADS1115采用 2.0V 至 5.5V 的单工作电源。ADS1115能够以高达每秒 860 个采样数据 (SPS) 的速率执行转换操作。ADS1115 具有一个板上可编程增益放大器 (PGA),该 PGA 可提供从电源电压到低至 ±256mV 的输入范围,因而使得能够以高分辨率来测量大信号
发表于 2020-08-03
基于stm32f10 <font color='red'>ADS</font>1115芯片模转换器 数据采集系统
STM32实现ADS1256进行数据电压采集程序
通过cubeMX配置STM32RCT6的IO口与ads1256ADC模块的连接IO口工作模式SPI,还有接受中断接受状态引脚,最终ADC采集数据经过卡尔曼滤波器滤波输出单片机源程序如下:#include "ads1256.h"int32_t adcVaule = 0x00;float voltage = 0x00;float filterVoltage = 0.0;float filterVoltage2 = 0.0;void delayXus(uint16_t us) {    uint16_t diff = 0xffff - 5 - us;    //设置定时器的计数
发表于 2020-07-25
mini2440之ads下dma测试
在网上找到一个dma的ads工程,将其dma功能整到了原来的ads工程TQ2440_Test里面用下面的main.c换下原来TQ2440_Test的main.chttp://download.csdn.net/detail/songqqnew/3636198之所以要介绍DMA,因为它对性能太重要了!只有活用了DMA,CPU的性能才能上去!S3c2410有四个DMA,每个DMA支持工作方式基本相同,但支持的source Dest可能略有不同,具体见Datasheet。这里具体DMA CONTROL寄存器(DCON)的配置说明,进而引出DMA的各种工作方式。Atomic transfer:指的是DMA的单次原子操作,它可以是Unit
发表于 2020-07-19
Arm CEO:英伟达的收购不会改变Arm对中国市场的投入
英伟达正式宣布将以400亿美元的价格从软银手中收购Arm。  根据协议,英伟达将向软银公司支付价值215亿美元的英伟达股票,以及120亿美元现金,其中包括签约时即刻支付的20亿美元。 对于此次收购,英伟达CEO黄仁勋表示,收购Arm是一生仅有的机会,会花很多精力和时间,但有信心回应监管挑战。 Arm CEO 西蒙·赛格斯则表示,英伟达的收购不会改变Arm对中国市场的投入,中国合资公司对Arm很重要。 据悉,此项交易尚须获得中国、美国、欧盟和英国的批准,预计监管审批可能需要长达18个月的时间。 另外,西蒙·赛格斯早前曾表示,我们大部分产品不受美国的出口管制约束,这不
发表于 2020-09-15
<font color='red'>Arm</font> CEO:英伟达的收购不会改变<font color='red'>Arm</font>对中国市场的投入
小广播
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD。com。cn, Inc。 All rights reserved
可以提现送彩金的捕鱼游戏 棋牌送彩金38 最新棋牌注册送彩金 真人百家乐送彩金 彩票大赢家 送彩金500的网站大白菜不看id 电子娱乐送彩金论坛 mg游戏送彩金无需申请 百家乐送彩金 首次充值送彩金