天嵌 ARM开发社区

 找回密码
 注册
楼主: 亚瑟王

第一个裸跑程序的建立步骤

[复制链接]
xuehui869 发表于 2009-11-11 15:02:57 | 显示全部楼层
要下载到Nand里面,从0x0开始执行。。。下载到SDRAM里面发现不对,因为U boot在执行,不知道它当时的PC指针指向哪。。

当然用H-jtag下载最好。。。。
xuehui869 发表于 2009-11-11 15:05:00 | 显示全部楼层
本帖最后由 xuehui869 于 2009-11-11 15:07 编辑

写上面的汇编代码的时候注意下面问题,(转自网上)

壞習慣——ADS Coding Style



    继续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等其他各种白痴的办法。

    最后一句:对付白痴只能用白痴的办法,但使用白痴的办法时,千万不要入戏太深无法自拔。
xuehui869 发表于 2009-11-11 17:52:35 | 显示全部楼层
在SDRAM中也可以。。。。。刚才我的DNW的地址忘设置了
jonnyju 发表于 2009-11-16 22:28:08 | 显示全部楼层
为什么我的会说出错呢,
下面两说是说Unkown opcode

AREA Init,CODE,READONLY
ENTRY
yihuan 发表于 2009-12-16 21:49:46 | 显示全部楼层
SRC目录下没有2440addr.inc,Memcfg.inc,Option.inc这三个目录,inc下有但是用ADS加载不上,为什么?强烈建议赶紧出裸奔三部曲,要不对我们这些新手入门来说太难了。
seedzi 发表于 2009-12-17 16:27:32 | 显示全部楼层
希望亚瑟王发个裸奔的程序上来
关盘里面的代码几乎都没有中文的注释
也没有详细的硬件说明手册
这让人怎么学啊
强烈建议把程序的中文注释加进去
还有硬件原理说明
magiclove444 发表于 2010-5-22 20:03:12 | 显示全部楼层
10# sunhy1021

为什么下到我的板子上,灯不亮呢
zhangrenguo 发表于 2010-7-17 21:48:07 | 显示全部楼层
非常不错   感谢了!!!
1060604020 发表于 2010-8-4 13:55:25 | 显示全部楼层
先看先哈~!
学海无涯 发表于 2010-11-4 21:55:49 | 显示全部楼层
我也是不知该怎么把它学好
chengbaoshu2006 发表于 2011-2-21 17:28:43 | 显示全部楼层
不错,我down下来就一个bug,修了一下就可以使用了
sharpjeff 发表于 2011-2-22 10:39:56 | 显示全部楼层
学习下
第一次接触这些
hdwmh2011 发表于 2011-3-6 10:44:32 | 显示全部楼层
学习一下吧。。。。。。。
scg2635an 发表于 2011-3-31 10:01:49 | 显示全部楼层
1# 亚瑟王
问下楼主烧写的时候如果用USB口烧写,只需连USB线?还用连串口线吗?
raceant 发表于 2011-4-8 23:23:50 | 显示全部楼层
10# sunhy1021
程序是有点问题啊  到现在都没有解决

Eorror  : L6218E:Undefined symbol PCLK (referred form 2440lib.o)

求教!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号 )

GMT+8, 2024-5-7 11:56 , Processed in 1.062494 second(s), 17 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表