ARM工作日志

上一篇 / 下一篇  2007-06-13 09:06:36 / 天气: 晴朗 / 心情: 高兴

工作日志(2007-5-29 ~ 2007-6-12):

2007612日星期二

l        今天把优龙光盘附带的启动代码仔仔细细看了一遍,基本上看懂了。修改了一下,还未完成。

l        细节:以前习惯把程序的代码复制到子目录中作为备份,但是ADS编译的时候会搜索工程目录下的所有子目录,这样会引起编译出错,需要注意。

2007611日星期一

l        ARM Jtag调试时,默认AXD并不会初始化SDRAM(这也难怪,AXD并不知道板子的连线情况),因此在把代码下到SDRAM调试之前需要进行初始化。可以利用NAND中已有的bootloader来实现SDRAM初始化:先复位JTAG,然后复位板子,看到SD卡旁的LED闪烁了就说明bootloader已经运行了,SDRAM也可用了。也可以让AXD通过JTAG配置2440SDRAM控制寄存器实现对SDRAM的初始化,引用别人的;劳动成果:

通过axd命令行对目标板进行设置

     因为我用的yl2440板是配置为nand启动的,sdram是在0x30000000地址的,所以需要先对存储器控制寄存器进行设置,在axd下设置方法是:选systems views->command lines interface,输入如下命令对寄存器设置
                     
地址                            长度
setmem 0x53000000, 0x00000000,  32
还可以将要设置的寄存器写入一个文件,在命令行用ob(obey) config.ini即可批量执行设置指令或在options->Configure Interface中做如下设置

我的config文件内容如下:
setmem 0x53000000, 0x00000000,       32
setmem 0x4a000008, 0xffffffff,               32
setmem 0x4a00001c, 0x00007fff,          32
setmem 0x48000000, 0x2212d110,       32
setmem 0x48000004, 0x00000f40,        32
setmem 0x48000008, 0x00002e50,       32
setmem 0x4800000c, 0x00002e50,       32
setmem 0x48000010, 0x00002e50,       32
setmem 0x48000014, 0x00002e50,       32
setmem 0x48000018, 0x00002e50,       32
setmem 0x4800001c, 0x00018005,       32
setmem 0x48000020, 0x00018005,       32
setmem 0x48000024, 0x00960542,       32
setmem 0x48000028, 0x00000032,       32
setmem 0x4800002c, 0x00000030,       32
setmem 0x48000030, 0x00000030,       32
如果设置正确则开发版的SDRAM生效,则可以加载目标代码了

 

 

l        研究2440开发板自带的测试程序工程:

n        工程设置RO_baseImgae entry point都为0x30100000,实测表明无论把bin文件下载到SDRAM中的任何地方都可以正常执行(当然是通过BIOS下载并移交控制权的),工程设置中将2440init.o定位在映象的最前面,因此2440init.S不仅负责C代码的搬移工作而且它的执行是地址无关的。

l        转载一个关于AXD的问题:
ADS编译好后,连接到AxD时,会出现一警告对话框“The session file'C:\Documents and Settings\...\default-1-2-0-0.ses'could not be loaded。”看了看AXD的命令行,发觉是可以带参数的.DEBUG调试时,是带参数-DebugRun直接跑时,是带的参数-exec;可以用AXD -help来查看弹出的命令参数,会弹出一个对话框;因此我就在调试的命令行那里进行了改进,改成:axd -session srf.ses -debug &1以上兰色部分,就是我另外加到命令行的, srf.ses是在进行过一次调试过后保存session,然后将这个.ses文件放到生成映象文件之下,如此不会弹出那个加载ses文件出错的问题了,不用经常的去配置那个"Configure Target",更无须单独启动AXD那么麻烦了

l        1RVDS软件问题

  -〉我下周到英蓓特一趟,问一下。

  -〉如果你们有意向,可以让他们找你一下,岂不更直接?呵呵

2、软件发展

  -〉我们以前都是开源上做的,采用自己build toolchain,所以对ADS以及RVDS都没有很深刻感觉

  -〉如果才用有OS的系统,一般这个OS对开发环境/ToolChain都有要求,你可以根据OS选择编译平台,仿佛在ADS上编译的系统(OS)不是很复杂的样子(未必准确)

3、OS选择

  -〉选择OS,看你在这个OS上要跑什么任务,以怎样的应用为主,系统要求怎样,肯付多少钱,呵呵

  -〉根据你简单描述,仿佛是以协议处理(转发)为主、UI不复杂、可能有实时要求、支持TCP/IP的通信设备,如果不考虑成本,VxWorks是可以候选的;可以买OS的话(包括OS模块),ThreadXuC/OS可以选择,取决于任务复杂程度;如果考虑后续模块/资源/应用支持的丰富程度,NuCleus/Linux/WinCE可以候选;如果考虑开源,Linux/eCos都是不错选择;当然取决于开发人员的投入和喜好,如果不想再OS层面过多纠缠,购买OS是比较明智的,如果出货量非常大(即成本敏感),最好选择开源,但人力开销也大,呵呵。

 

200768日星期五

l        ADSRVDS的主要区别

n        RVDS支持ARMv6以上的架构

n        RVDSCC++代码都是由同一个编译器编译的,支持C++库全集,而ADS只支持子集

n        RVDS支持内嵌汇编

l        JTAG原理:
芯片的每个引脚上加一个锁存器并将他们连接起来,形成边界扫描链(Boundary-Scan Chain)对边界扫描链的控制是通过TAPTest Access PortController来完成的,边界扫描链可以有多条。

n        引脚:Test Clock Input (TCK)Test Mode Selection Input (TMS)Test Data Input (TDI)Test Data Output (TDO)Test Reset Input (TRST)

n        对于ARM芯片,JTAG不仅连接到ARM核的引脚上,还连接了内置的embedded ICE模块上,ICE控制ARM内核与外部的联通以及工作状态,最终实现调试功能。

 

200767日星期四

l        C语言中用static关键字修饰的函数的作用:静态函数,使某个函数只在一个源文件中有效,不能被其他源文件所用。其实被static关键字修饰的无论是变量还是函数,其可见域都被限制在本文件内。而在C++中由于有类机制,可以把私有函数设为private,就用不着static

l        MAC工作在数据链路层,PHY工作在物理层,MII是连接这两者的接口。PHY收到MAC过来的数据(对PHY来说,没有帧的概念,对它来说,都是数据而不管什么地址,数据还是CRC),每4bit就增加1bit的检错码,然后把并行数据转化为串行流数据,再按照物理层的编码规则(10Based-TNRZ编码或100based-T的曼彻斯特编码)把数据编码,再变为模拟信号把数据送出去,PHY还实现CSMA/CD

l        DM9000 Application note中对访问EEPROMPHY的描述很含糊,当访问结束之后等待完成标志,然后到底是可以直接清DM_EPCR呢还是需要再延时200us?如果不需要延时那么DM_EPCR是不是会自动清零?等上机调试的时候做个实验确定一下。

 

200766日星期三

l        今天的主要工作是看了DM9000的驱动代码,并进行了注释。

l        由于DM9000的手册可读性不佳,看at91rm9200手册的EMAC部分:

n        以太网MAC根据引脚输出配置不同,可使用独立媒体接口(MII)或简化独立媒体接口(RMII)来传输数据。简化接口的目的是减少接线器引脚数,以连接多PHY接口

n        

200765日星期二

l        DM9000


FPGA/CPLD器件价格查询

TAG: ARM s3c2440

harryyuan的个人空间 引用 删除 harryyuan   /   2007-06-13 09:09:00
很多关键字被屏蔽了,而且文章被裁尾,先去写代码了,以后有空来整理
 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2008-11-23  
      1
2345678
9101112131415
16171819202122
23242526272829
30      

我的存档

数据统计

  • 访问量: 1057
  • 日志数: 1
  • 建立时间: 2007-06-13
  • 更新时间: 2007-06-13

RSS订阅

Open Toolbar