关于ASD运行环境的格式

      昨天运行程序时发现一个“ Error : A1163E: Unknown opcode” 的错误,很简单的程序,竟然总也找不到原因,今天上网查找原因时找到一篇不错的文章特此转过来学习啦,虽然问题还是没解决呢……

      继续coding... 建立工程,编辑源文件,把文件加入工程,设置工程属性、编译与链接选项,make! Error : A1163E: Unknown opcode vector.s line 14 14 00000020 Reset_Addr DCD Reset_Handler ... 全国人民再次震惊了,世界人民傻眼了...

      我这次的的确确是在ADS的CodeWarrior中编辑的代码~!为什么!?为什么armassembler又不认识DCD了呢? 我一个字母一个字母的检查,没有发现错误。我狠狠地在出错的代码前后各敲了一次回车,确保正确换行,还是报错...我去掉了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给fuck了一把。 原来,对于协处理器的寄存器符号,都必须用小写字母来表示~!My God!What a fucking world! 天,又遇到新的毛病!前面说一些伪操作语句前面不要TAB,而又有一些伪操作(directive)前还必须要Tab符号或空格~!不信?把AREA还有与之配套的END语句顶格写试试?!ADS跟你报错没商量~!EXPORT/IMPORT前面也一样必须有Tab符号或空格!

       如果你也和我一样遇到这种莫名奇妙的问题:

       1.Fuck ADS and then go to step 2;

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

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

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

      5.TAB换空格或空格换TAB等其他各种白痴的办法。 最

      后一句:对付白痴只能用白痴的办法,但使用白痴的办法时,千万不要入戏太深无法自拔。

 

 

最后说几句:作者还是很幽默的啊,调程序的人难得有这样的心境。还有作者的格言“我思故我为”,和我原来的“我思故我在”很相似呢,不过貌似还是作者的呢更有行动力啊,嘿嘿

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值