搜索
bottom↓
楼主: new.ease

淘宝上的(中基学生电脑(SDA-01) 这个不知是不是可以当ARM学习板。拍了一个

[复制链接]

出0入0汤圆

发表于 2008-9-8 16:29:32 | 显示全部楼层
赞一下new.ease ,不过有个问题,有jtag了为什么还用angel调试啊,直接用jtag不行吗?
还有一个问题,        prt=(int *)0x12000000;你怎么搞清楚这个地址的?谢谢

出0入0汤圆

发表于 2008-9-8 18:09:51 | 显示全部楼层
额,JTAG用来写入BOOTLOADER。。angel用来烧程序啊

出0入0汤圆

 楼主| 发表于 2008-9-8 18:19:11 | 显示全部楼层
【205楼】 dack
prt=(int *)0x12000000官方说SA-1110 Development Board Status Register 0x1200,0000

strong\Guides\27827801.pdf 第42页有详细说明

兄弟们。我们这只是一个简易JTAG。没办法调试的常见的JTAG代理软件也不支持这款CPU。大家不要理解错了Angel主要用来调试的。不是用来下载。下载用redboot就搞定了。看到楼上有兄弟被雷到了说明一下

出0入0汤圆

发表于 2008-9-8 19:41:07 | 显示全部楼层
我记得redboot似乎好像也许能够调试

出0入0汤圆

发表于 2008-9-8 20:05:16 | 显示全部楼层
请 new.ease 提供一下giveio ,谢谢

出0入0汤圆

发表于 2008-9-8 20:12:12 | 显示全部楼层
改64m可能性已探明:板载16m*2的ram,有的是三星的,有的是HY的。ram上的a12地址线已连出,至少与flash的a12相连,所以也应该和sa1100相连。可替换ram型号:HY57V561620或K4S561632。替换上然后更改redboot的linux启动参数就应该可以了。改128m尚在探寻中。

出0入0汤圆

 楼主| 发表于 2008-9-8 20:29:17 | 显示全部楼层
【208楼】 dack
REDBOOT确实可以调试但根据我现在掌握的数据来看。系统中的REDBOOT没有调试模块。正在努力实现自己的REDBOOT

【209楼】 rainbowu
官方的jflashkit包里有GIVEIO和说明

【210楼】 ourfxt
真是一个好消息。能不以看看FLASH扩充的可能性。

出0入0汤圆

发表于 2008-9-8 21:29:52 | 显示全部楼层
flash有厂家ID号,换了可能bootload不认的,如果大的改变了flash的块大小的话连linux内核也要改的。而且这个flash封装尺寸的我只看到过intel一家的(估计是我孤陋寡闻)。当然如果你有bootload和kernel的全部代码的话随便怎样都行了。

对了,发现既然ram的a12线也有连接,那么使用k4s511632(64MB)*2组成128m的内存,应该可以使他提升不小性能。

摆脱new.ease 查一下sa1100支持不支持ddram的片子。

出0入0汤圆

 楼主| 发表于 2008-9-8 21:36:01 | 显示全部楼层
【212楼】 ourfxt
flash有厂家ID号
这个放心。我会重新编译REDBOOT。如果有相关检测咱可以改。只要物理参数一差不多就行。FLASH好像是用CPLD完成映射的。具体工作原理还不明白

出0入0汤圆

发表于 2008-9-8 21:51:06 | 显示全部楼层
flash不好扩充,flash芯片高位地址线没有引出,我倒是觉得没必要扩充flash,因为有sd mmc cf卡支持,应用完全可以放在卡上,32M放个linux内核以及x应该还是没问题的。ram扩充到64M应该是没问题的,128M我看玄,不过扩到64M已经很好了,绝大多数应用可以跑得很流畅了。

出0入0汤圆

发表于 2008-9-8 22:23:24 | 显示全部楼层
128m应该可以扩充,因为只要a12链了行列地址是复用a0~a12的。
但是K4S511632太贵了,掏宝上全新的要80~90一片。我还是要故伎重演了,买就内存拆了。

另外谁有它的kernel代码啊!想加个驱动,把那没用的猫换成阿莫最近买来的gps。

像个bcm4780的mips就支持ddram和sdram。

无线网卡都是pci接口的,没法接。弄个蓝牙到可以。

出0入0汤圆

发表于 2008-9-8 22:30:08 | 显示全部楼层
摆脱new.ease 查一下sa1100支持不支持ddram的片子。
                                   ~~~~~~这怎么可能

我认为换猫还不如把无线网卡加上去实惠

出0入0汤圆

发表于 2008-9-8 23:34:09 | 显示全部楼层
弱弱的问个问题,是否可以加sd卡驱动,与mmc共用一个插槽

出0入0汤圆

发表于 2008-9-9 04:36:27 | 显示全部楼层
SD卡貌似比MMC卡厚

出0入0汤圆

发表于 2008-9-9 07:35:19 | 显示全部楼层
sd卡完全能够插进去,而且sd卡工作也串口模式是与mmc也兼容的,但sda切不能用sd,为什么呢

出0入0汤圆

发表于 2008-9-9 08:22:33 | 显示全部楼层
我认为完全可以加上sd卡驱动,事实上那个接mmc插槽的芯片就是一个sd卡控制芯片。至于原来为什么没做这个功能,估计是当时开发的时候,sd卡还比较少见。现在我的充电器项目还没最后完成,等完成后再研究这个。

出0入0汤圆

发表于 2008-9-9 08:36:23 | 显示全部楼层
UP!

出0入0汤圆

发表于 2008-9-9 08:57:18 | 显示全部楼层
又有新进展了,顶呀

出0入0汤圆

发表于 2008-9-9 10:05:47 | 显示全部楼层
我的拆了,但还没有摸出眉目来。

出0入0汤圆

发表于 2008-9-9 10:42:29 | 显示全部楼层
我认为完全可以加上sd卡驱动,事实上那个接mmc插槽的芯片就是一个sd卡控制芯片。至于原来为什么没做这个功能,估计是当时开发的时候,sd卡还比较少见。现在我的充电器项目还没最后完成,等完成后再研究这个。

真是好呀,我手头有几张sd卡,能用的话就不用再买了,呵呵

出0入0汤圆

发表于 2008-9-10 07:07:29 | 显示全部楼层
写的教程不错。。。这周有时间就弄弄看

出0入0汤圆

发表于 2008-9-10 10:07:47 | 显示全部楼层
Sa1110 Linux 移植手册  
                                   姚文龙
前言  
    最近一年,公司要推出一款基于assabet 的学生电脑(Student PC),简称SPC。我在项目中期进入公司,并开始参与这个项目的开发,主要负责的是linux 系统的移植。
    由于项目紧,没有做什么详细的项目规划,就开工了。也因此在项目过程中产生了很多混乱。还好,跌跌撞撞,终于完成了整个项目。
    虽然项目中的部分技术开发工作,我曾经历过一些,但在这个项目中,有了新的提升。 所以,项目完成以后,有种强烈的愿望,想把整个技术过程总结一下;顺便理清一下自己的 思路,免得在以后的项目中,再出现这次的混乱场面。同时,也希望总结出来的这个技术手册,能给其他人带来收益。
    这本手册的内容,主要是针对 sa1110 的linux 移植所牵涉到的所有技术,讲述如何处理这些技术,以满足需要,而不会太多涉及具体的源代码。这主要是要照顾公司的利益,当然也是为了保住我的饭碗了。
    关于嵌入式linux 开发的基本面知识,网络上已经很多了。这次总结,是针对这个特定的项目,所以,应该是算实战经验吧。但是为了公司的利益,又不能讲的太细,所以,大多数时候会对相关技术先做个简单介绍,然后提出项目牵涉到的实际问题,最后提供实际的解决思路和部分关键代码。
1、Intel(R) StrongARM(R) SA-1110 Microprocessor简介  
    详细的介绍,请参考 assabet 开发板随带的 pdf 文档:278240.pdf。  
    Intel(R) StrongARM(R) SA-1110 Microprocessor (SA-1110) 是个高度集成的微处理器, 而 assabet就是基于 sa1110 的嵌入式开发版。Sa1110 集成了一个 32 位的 StrongARM(R) RISC 处理器核心,系统支持逻辑(system support logic),多通信通道,一个 LCD 控制器,一 个内存控制器、一个 PCMCIA 控制器,28 个GPIO(general-purpose I/O ports)。  
    实际上 sa1110 是从 sa1100 而来的,改变很小,只是在内存和 PCMCIA 控制器上有点改动。所以,我们的项目主要是参照 sa1100,来做对 sa1110 的移植工作;在整个手册中,也是正对 sa1100 在 linux kernel 中的代码,作必要的修改。  
    Sa1110 有一个 16Kb 的 instruction cache 和一个 8Kb 的 write-back data cache,以及一个 minicache、一个 write buffer、一个 read buffer 和一个 MMU,是和 ARM V4 体系的处理器兼容的,处理器核心和 cache 的外部逻辑(the logic outside the core and caches) 是一下面三种模块组织的:  
1、内存和 PCMCIA 控制模块 MPCM(Memory and PCMCIA control module):  
    – Memory interface supporting ROM, Synchronous Mask ROM (SMROM), Flash, DRAM,  
       SDRAM, SRAM, SRAM-like variable latency I/O, and PCMCIA control signals  
2、系统控制模块 SCM(System control module):  
    – Twenty-eight general-purpose interruptible I/O ports  
    – Real-time clock, watchdog, and interval timers  
    – Power management controller  
    – Interrupt controller  
    – Reset controller  
     – Two on-chip oscillators for connection to 3.686 MHz and 32.768 kHz crystals  
3、外围设备控制模块 PCM(Peripheral control module):  
     – Six-channel DMA controller  
     – Gray/color, active/passive LCD controller  
     – 16550-compatible UART  
     – IrDA serial port (115 Kbps, 4 Mbps)  
     – Synchronous serial port (UCB1100, UCB1200, SPI, TI, μWire)  
     – Universal serial bus (USB) device controller  
     – 指令集由八种类型基本指令组成:  
      i. 两种类型指令用于负责算术逻辑单元ALU(arithmetic logic unit)、barrel   
         shifter,以及在 16 个逻辑寄存器(31 个物理寄存器)中执行快速数据操作的乘法器,操作过程中的数据宽度是 32 位的  
     ii. 三个类型指令控指内存和寄存器之间的数据传输:一个优化可变寻址方式,一个
         加速内容切换,一个交换数据。  
    iii. 两个类型指令控制运行流程和执行权限。  
     iv. 一个类型指令用于访问 CPU 权限状态。.  
    关于sa1110的介绍,就写到这儿。sa1110针对sa1100修改有限,所以绝大多数的kernel部分是不需要该的,因此也就不需要太详细的 sa1110 的知识,只是在做具体硬件驱动的时候,到 PDF文件中看一下接口说明,然后根据具体开发版的修改情况,得到硬件设备控制器的物理地址,做个映射,对控制器的寄存器进行操作,就可以了。  
2、SPC 硬件的详细情况  
    SPC 是基于assabet 开发版、根据我们公司的实际需要修改而来的。具体规格如下:
System Controller
■  Microprocessor        Intel StrongARM sa1110,206MHZ,1.75V 256PIN mBGA
Operationg System
■  Linux Embedded Operating System       Linux-2.4.18-rmk3-pxa2
Memory
■  On board SDRAM                    32MB on board
■  Compact Flash On Board
■  Intel StrataFlash                 32MB on board
Graphics subsystem
■  MPEG4 DECODER                     SOFTWARE
■  DSTN Panel                        DSTN HITACHI 8.2"
■  Backlight Inverter
■  Brightness Control
Touch Screen
■  Touch Screen controller       Philips UCB1300,4-wires with Battery monitor
Audio subsystem
■  CODEC                         PHILIPS UDA1341TS AUDIO CODEC
■  Microphone In(Audio Jack)
■  Speaker Out (Stereo Audio Jack)  3.5mm Jack
■  Internal Microphone
■  Internal Speakers
Battery subsystem
■  Battery Charger                MAXIM MAX846A charger managerment IC

Misc.function

■  Extended function header           8*2 header, JTAG,Serial.

■  Serial Interface                   For Software debug

■  JTAG Interface                     For data transfer/receive with host PC

■  IrDA Interface                     4Mbps, FIR

■  USB Slave Port(x1)                 SA1110 slave Internal

■  Hardware Reset Control

■  DC in Connector                    6V , 2A DC – In

■  On board DC-DC Converters          MAXIM MAX1705(5V,3.3V),MAX1692(VCORE)

                                      High efficiency switching power controller

■  Sleep Button                       Suspend-to-RAM button (S2 top pad)

■  RESET Button                       Restart os button (S9 bottom pad)

■  Function Button                    Software K/B , Inbox, scroll up / down, IE..

■  Power LED                          Green color

■  6-layer PCB,dual-sided components      PCB size ~=134mm*206mm

■  USB host controller                    SL811HS USB HCD

■  USB storage                            common usb storage under USB1.1Spec

■  SD/MMC                                 WINBOND W86L388

■  PS2

■  USB keyboard

■  Recorder Button                       Start/stop Recorder software

■ Direction Button                       Up/Down/Right/Left/PageDown/PageUp  

■ Enter Button                          



3、移植过程简介



开发时,涉及到两台机器:  

    host:PC 机,x86, gcc 2.96 ,linux-2.4.18, Mandrake 8.0  

    target:SPC 机,sa1100, linux-2.4.18  

    build :和 host 是同一台机器   

一般来说,从无到有地移植 linux 系统,需要完成下列六个任务模块:  

交叉编译环境模块  

    是在 host 机器上,建立交叉编译环境,以便能编译在 target 上运行的 ARM执行程序的。

这是整个 SPC 开发工作的基础,为后继开发提供基本的开发工具。  

LINUX 内核引导模块  

    LINUX 内核引导又叫 BOOTLOADER,是在 SPC 的 LINUX 内核没有启动时,负责对 SPC 硬

件进行必要的管理,以便能够引导 LINUX 内核、和 host 主机通信、给 SPC 存储硬件进行分

区管理。这个任务模块,同时包括生成将 BOOTLOADER 烧录到 SPC 的工具。  

LINUX 内核模块  

    针对 SPC 的sa1110 的硬件,修改 Linux-2.4.18 内核,提供对 sa1110 的支持,和必要的

设备驱动。  

文件系统模块  


----------------------- Page 22-----------------------

                    自由、协作、创造                                               22



    提供 SPC LINUX 运行的环境,必须提供文件系统。文件系统包括 LINUX系统存储分区、

文件组织格式、LINUX 运行环境所需的工具软件和库。LINUX 运行环境主要采用 BUSYBOX 和

其他必要的工具。  

设备驱动模块  

    外围设备的驱动程序,和相应的配套使用工具或测试工具。这些设备包括 10M 的 ISA

网卡、USB 设备,LCD ,PCMCIA 卡,IrDA ,AC97声卡,SD 卡,MMC,PS2 设备,以及其他外

围设备。  

性能优化模块  

    为充分利用 sa1110 的一些特性,提升 SPC 整体性能表现,需要做针对性地优化工作。

同时,SPC 根据需要,提供了一些实用快捷按钮,需要额外的驱动支持。  



4、移植工作列表  



    这里简单讲述开发的整个系统的流程:  

    1. 生成交叉编译环境  

    2. 利用交叉编译环境编译 BOOTLOADER  

    3. 编译烧录 BOOTLOADER 所需的工具  

    4. 将 BOOTLOADER 烧录到 SPC  

    5. 用 SPC 存在的 BOOTLOADER 对 SPC 存储设备进行分区  

    6. 用交叉编译环境编译 kernel  

    7. 将转换过的 kernel 用 BOOTLOADER 烧录到 SPC 的指定分区上  

    8. 用 BOOTLOADER 启动 kernel,出现问题,反复调试  
    9. 用交叉编译环境建立文件系统,并作必要转换成镜像文件(需要配备转换工具)  
   10. 用 BOOTLOADER 将文件镜像烧录到 SPC 的指定分区上,出问题,反复体调试  
   11. 编写 LCD 驱动程序  
   12. 编写 Touch Screen 驱动,通过支持 qt/E 及其应用来配合  
   13. 编写 CF flash 卡驱动  
   14. 编写 CF 网卡驱动  
   15. 编写 USB host and device 驱动  
   16. 编写 IRDA 驱动  
   17. 编写 MMC 和 SD 驱动  
   18. 编写 10/100M 网卡驱动  
   19. 编写声卡驱动, 包括 MIC  
   20. 编写 PS2 设备驱动   
   21. Modem 驱动和拨号支持  
   22. 编写电源管理部分的代码   
   23. 编写电压监测代码, 并与应用接口结合   
   24. 编写硬件特殊按钮驱动  
   25. 整体调试  
   26. 针对 sa1110 作电源管理和执行效率方面的优化  
5、致谢  
    首先,要谢谢我目前的公司,是这个公司给我的时间和精力买单,同时还提供这个机会, 让我参与并完成这个项目,更重要的是,公司还是一如既往的优待我。所以,我一定不能出卖公司。  
   其次,应该谢谢的就是网络和网络上的 open source 社区的精英,因为除了但时脑袋中装的一些知识外,其他的所有知识都是通过网络、来自 open source 社区。  
   最后,是该谢谢让我失恋的女孩,是她让我有闲暇来做这些技术总结。  
   借这个基_督教徒女孩的口,我要说:上帝保佑善良的人们,阿们!  

      

                                                               姚文龙  

                                                           Alan_Yao@263.net
这是我找到的一个应该是cbe的开发者写的一篇文章,希望对大家有帮助

出0入0汤圆

发表于 2008-9-10 10:17:11 | 显示全部楼层
Sa1110 Linux 移植手册  
                                   姚文龙

前言  
    最近一年,公司要推出一款基于assabet 的学生电脑(Student PC),简称SPC。我在项目

中期进入公司,并开始参与这个项目的开发,主要负责的是linux 系统的移植。

    由于项目紧,没有做什么详细的项目规划,就开工了。也因此在项目过程中产生了很

多混乱。还好,跌跌撞撞,终于完成了整个项目。

    虽然项目中的部分技术开发工作,我曾经历过一些,但在这个项目中,有了新的提升。

所以,项目完成以后,有种强烈的愿望,想把整个技术过程总结一下;顺便理清一下自己的

思路,免得在以后的项目中,再出现这次的混乱场面。同时,也希望总结出来的这个技术手

册,能给其他人带来收益。

    这本手册的内容,主要是针对 sa1110 的linux 移植所牵涉到的所有技术,讲述如何处理

这些技术,以满足需要,而不会太多涉及具体的源代码。这主要是要照顾公司的利益,当然

也是为了保住我的饭碗了。

    关于嵌入式linux 开发的基本面知识,网络上已经很多了。这次总结,是针对这个特定

的项目,所以,应该是算实战经验吧。但是为了公司的利益,又不能讲的太细,所以,大多

数时候会对相关技术先做个简单介绍,然后提出项目牵涉到的实际问题,最后提供实际的解

决思路和部分关键代码。

1、Intel(R) StrongARM(R) SA-1110 Microprocessor简介  

    详细的介绍,请参考 assabet 开发板随带的 pdf 文档:278240.pdf。  

    Intel(R) StrongARM(R) SA-1110 Microprocessor (SA-1110) 是个高度集成的微处理器,

而 assabet就是基于 sa1110 的嵌入式开发版。Sa1110 集成了一个 32 位的 StrongARM(R) RISC  

处理器核心,系统支持逻辑(system support logic),多通信通道,一个 LCD 控制器,一

个内存控制器、一个 PCMCIA 控制器,28 个GPIO(general-purpose I/O ports)。  

    实际上 sa1110 是从 sa1100 而来的,改变很小,只是在内存和 PCMCIA 控制器上有点改

动。所以,我们的项目主要是参照 sa1100,来做对 sa1110 的移植工作;在整个手册中,也

是正对 sa1100 在 linux kernel 中的代码,作必要的修改。  

    Sa1110 有一个 16Kb 的 instruction cache 和一个 8Kb 的 write-back data cache,以

及一个 minicache、一个 write buffer、一个 read buffer 和一个 MMU,是和 ARM V4 体系

的处理器兼容的,处理器核心和 cache 的外部逻辑(the logic outside the core and caches)

是一下面三种模块组织的:  

1、内存和 PCMCIA 控制模块 MPCM(Memory and PCMCIA control module):  

    – Memory interface supporting ROM, Synchronous Mask ROM (SMROM), Flash, DRAM,  

       SDRAM, SRAM, SRAM-like variable latency I/O, and PCMCIA control signals  

2、系统控制模块 SCM(System control module):  

    – Twenty-eight general-purpose interruptible I/O ports  

    – Real-time clock, watchdog, and interval timers  

    – Power management controller  

    – Interrupt controller  

    – Reset controller  

     – Two on-chip oscillators for connection to 3.686 MHz and 32.768 kHz crystals  

3、外围设备控制模块 PCM(Peripheral control module):  

     – Six-channel DMA controller  

     – Gray/color, active/passive LCD controller  

     – 16550-compatible UART  

     – IrDA serial port (115 Kbps, 4 Mbps)  

     – Synchronous serial port (UCB1100, UCB1200, SPI, TI, μWire)  

     – Universal serial bus (USB) device controller  

     – 指令集由八种类型基本指令组成:  

      i. 两种类型指令用于负责算术逻辑单元ALU(arithmetic logic unit)、barrel   

         shifter,以及在 16 个逻辑寄存器(31 个物理寄存器)中执行快速数据操作的乘

         法器,操作过程中的数据宽度是 32 位的  

     ii. 三个类型指令控指内存和寄存器之间的数据传输:一个优化可变寻址方式,一个

         加速内容切换,一个交换数据。  

    iii. 两个类型指令控制运行流程和执行权限。  

     iv. 一个类型指令用于访问 CPU 权限状态。.  

    关于sa1110的介绍,就写到这儿。sa1110针对sa1100修改有限,所以绝大多数的kernel

部分是不需要该的,因此也就不需要太详细的 sa1110 的知识,只是在做具体硬件驱动的时

候,到 PDF文件中看一下接口说明,然后根据具体开发版的修改情况,得到硬件设备控制器

的物理地址,做个映射,对控制器的寄存器进行操作,就可以了。  



2、SPC 硬件的详细情况  



    SPC 是基于assabet 开发版、根据我们公司的实际需要修改而来的。具体规格如下:

System Controller

■  Microprocessor        Intel StrongARM sa1110,206MHZ,1.75V 256PIN mBGA

Operationg System

■  Linux Embedded Operating System       Linux-2.4.18-rmk3-pxa2

Memory

■  On board SDRAM                    32MB on board

■  Compact Flash On Board

■  Intel StrataFlash                 32MB on board

Graphics subsystem

■  MPEG4 DECODER                     SOFTWARE

■  DSTN Panel                        DSTN HITACHI 8.2"

■  Backlight Inverter

■  Brightness Control

Touch Screen

■  Touch Screen controller       Philips UCB1300,4-wires with Battery monitor

Audio subsystem

■  CODEC                         PHILIPS UDA1341TS AUDIO CODEC

■  Microphone In(Audio Jack)

■  Speaker Out (Stereo Audio Jack)  3.5mm Jack

■  Internal Microphone

■  Internal Speakers


Battery subsystem

■  Battery Charger                MAXIM MAX846A charger managerment IC

Misc.function

■  Extended function header           8*2 header, JTAG,Serial.

■  Serial Interface                   For Software debug

■  JTAG Interface                     For data transfer/receive with host PC

■  IrDA Interface                     4Mbps, FIR

■  USB Slave Port(x1)                 SA1110 slave Internal

■  Hardware Reset Control

■  DC in Connector                    6V , 2A DC – In

■  On board DC-DC Converters          MAXIM MAX1705(5V,3.3V),MAX1692(VCORE)

                                      High efficiency switching power controller

■  Sleep Button                       Suspend-to-RAM button (S2 top pad)

■  RESET Button                       Restart os button (S9 bottom pad)

■  Function Button                    Software K/B , Inbox, scroll up / down, IE..

■  Power LED                          Green color

■  6-layer PCB,dual-sided components      PCB size ~=134mm*206mm

■  USB host controller                    SL811HS USB HCD

■  USB storage                            common usb storage under USB1.1Spec

■  SD/MMC                                 WINBOND W86L388

■  PS2

■  USB keyboard

■  Recorder Button                       Start/stop Recorder software

■ Direction Button                       Up/Down/Right/Left/PageDown/PageUp  

■ Enter Button                          



3、移植过程简介



开发时,涉及到两台机器:  

    host:PC 机,x86, gcc 2.96 ,linux-2.4.18, Mandrake 8.0  

    target:SPC 机,sa1100, linux-2.4.18  

    build :和 host 是同一台机器   

一般来说,从无到有地移植 linux 系统,需要完成下列六个任务模块:  

交叉编译环境模块  

    是在 host 机器上,建立交叉编译环境,以便能编译在 target 上运行的 ARM执行程序的。

这是整个 SPC 开发工作的基础,为后继开发提供基本的开发工具。  

LINUX 内核引导模块  

    LINUX 内核引导又叫 BOOTLOADER,是在 SPC 的 LINUX 内核没有启动时,负责对 SPC 硬

件进行必要的管理,以便能够引导 LINUX 内核、和 host 主机通信、给 SPC 存储硬件进行分

区管理。这个任务模块,同时包括生成将 BOOTLOADER 烧录到 SPC 的工具。  

LINUX 内核模块  

    针对 SPC 的sa1110 的硬件,修改 Linux-2.4.18 内核,提供对 sa1110 的支持,和必要的

设备驱动。  

文件系统模块  


    提供 SPC LINUX 运行的环境,必须提供文件系统。文件系统包括 LINUX系统存储分区、

文件组织格式、LINUX 运行环境所需的工具软件和库。LINUX 运行环境主要采用 BUSYBOX 和

其他必要的工具。  

设备驱动模块  

    外围设备的驱动程序,和相应的配套使用工具或测试工具。这些设备包括 10M 的 ISA

网卡、USB 设备,LCD ,PCMCIA 卡,IrDA ,AC97声卡,SD 卡,MMC,PS2 设备,以及其他外

围设备。  

性能优化模块  

    为充分利用 sa1110 的一些特性,提升 SPC 整体性能表现,需要做针对性地优化工作。

同时,SPC 根据需要,提供了一些实用快捷按钮,需要额外的驱动支持。  



4、移植工作列表  



    这里简单讲述开发的整个系统的流程:  

    1. 生成交叉编译环境  

    2. 利用交叉编译环境编译 BOOTLOADER  

    3. 编译烧录 BOOTLOADER 所需的工具  

    4. 将 BOOTLOADER 烧录到 SPC  

    5. 用 SPC 存在的 BOOTLOADER 对 SPC 存储设备进行分区  

    6. 用交叉编译环境编译 kernel  

    7. 将转换过的 kernel 用 BOOTLOADER 烧录到 SPC 的指定分区上  

    8. 用 BOOTLOADER 启动 kernel,出现问题,反复调试  

    9. 用交叉编译环境建立文件系统,并作必要转换成镜像文件(需要配备转换工具)  

   10. 用 BOOTLOADER 将文件镜像烧录到 SPC 的指定分区上,出问题,反复体调试  

   11. 编写 LCD 驱动程序  

   12. 编写 Touch Screen 驱动,通过支持 qt/E 及其应用来配合  

   13. 编写 CF flash 卡驱动  

   14. 编写 CF 网卡驱动  

   15. 编写 USB host and device 驱动  

   16. 编写 IRDA 驱动  

   17. 编写 MMC 和 SD 驱动  

   18. 编写 10/100M 网卡驱动  

   19. 编写声卡驱动, 包括 MIC  

   20. 编写 PS2 设备驱动   

   21. Modem 驱动和拨号支持  

   22. 编写电源管理部分的代码   

   23. 编写电压监测代码, 并与应用接口结合   

   24. 编写硬件特殊按钮驱动  

   25. 整体调试  

   26. 针对 sa1110 作电源管理和执行效率方面的优化  



5、致谢  



    首先,要谢谢我目前的公司,是这个公司给我的时间和精力买单,同时还提供这个机会,

让我参与并完成这个项目,更重要的是,公司还是一如既往的优待我。所以,我一定不能出

卖公司。  


   其次,应该谢谢的就是网络和网络上的 open source 社区的精英,因为除了但时脑袋中

装的一些知识外,其他的所有知识都是通过网络、来自 open source 社区。  

   最后,是该谢谢让我失恋的女孩,是她让我有闲暇来做这些技术总结。  

   借这个基_督教徒女孩的口,我要说:上帝保佑善良的人们,阿们!  

      

                                                               姚文龙  

                                                           Alan_Yao@263.net  

这个是我找到的关于cbe的一篇文章,另外还有alan在大学的关于intel sa1110的移植的ppt

点击此处下载 ourdev_410709.rar(文件大小:140K) (原文件名:embed_Linux_porting.rar)
顺便说一下,这篇文章是2003年的

出0入0汤圆

发表于 2008-9-10 11:07:43 | 显示全部楼层
这文章结尾怎么有点悲情啊!

出0入0汤圆

发表于 2008-9-10 11:25:10 | 显示全部楼层
强。越来越有看头了。。。

出0入0汤圆

发表于 2008-9-10 12:11:09 | 显示全部楼层
我还给alan 发了mail,问问触摸屏的问题了,不知道他能不能回,呵呵
似乎他的邮箱不用了

出0入0汤圆

发表于 2008-9-11 09:08:17 | 显示全部楼层
继续顶。。。。

出0入0汤圆

发表于 2008-9-11 09:30:10 | 显示全部楼层
今天我也上网试了一下

(原文件名:PICT0149.JPG)


(原文件名:PICT0150.JPG)


(原文件名:PICT0151.JPG)

出0入0汤圆

发表于 2008-9-11 09:50:28 | 显示全部楼层
我也试了,上页面小的网站还可以的

出0入0汤圆

发表于 2008-9-11 11:15:24 | 显示全部楼层
上网没问题,就是页面刷新慢

出0入0汤圆

发表于 2008-9-11 11:21:24 | 显示全部楼层
感觉这机真的值,140,带cf,mmc,网卡,jtag,串口,线外,音频,液晶,还可以当ARM开发板用,带锂电

比一般,100多块的,单片开发板强太多了,可遇不可求的东西

准备借此板好好学下ARM

出0入0汤圆

发表于 2008-9-11 13:08:26 | 显示全部楼层
嗯嗯,全当玩玩了吧,什么都能干。。

出0入0汤圆

发表于 2008-9-11 16:06:20 | 显示全部楼层
不是到有没有哪位大侠把电路图给搞出来,那就方便了

出0入0汤圆

发表于 2008-9-11 19:00:16 | 显示全部楼层
电路不是有现成的嘛?

出0入0汤圆

发表于 2008-9-12 08:12:42 | 显示全部楼层
开发板的电路图对不上的,   如果能知道按键,显示屏,mmc...这些外设的接口地址就爽了

出0入0汤圆

发表于 2008-9-12 08:53:25 | 显示全部楼层
自己测测吧

出0入0汤圆

 楼主| 发表于 2008-9-12 16:12:26 | 显示全部楼层
TO:【116楼】 wswh2o 水之影
谢谢

TO:ALL
把下面这个文件用jflash烧进你的机子。然后按住电源键上电。试试。你会看到什么呢。看到的哥们上个图哦

最新的redbootourdev_415509.rar(文件大小:62K) (原文件名:redboot.rar)

出0入0汤圆

发表于 2008-9-12 19:42:57 | 显示全部楼层
顶。。。放假了。明天测试测试

出0入0汤圆

发表于 2008-9-12 21:21:40 | 显示全部楼层
+... Waiting for network card: ..........No network interfaces found

RedBoot(tm) bootstrap and debug environment [ROM]
Non-certified release, version UNKNOWN - built 21:14:09, Mar  4 2003

Platform: Assabet development system (StrongARM 1110)
Copyright (C) 2000, 2001, 2002, Red Hat, Inc.

RAM: 0x00000000-0x02000000, 0x00010958-0x01fbd000 available
FLASH: 0x50000000 - 0x52000000, 128 blocks of 0x00040000 bytes each.
== Executing boot script in 2.000 seconds - enter ^C to abort
ICMR=0x1, ICIP=0x0, GPLR=0x4591000, GEDR=0x0
Jump failed !!!
RedBoot> fis load kernel
RedBoot> exec -b 0x100000 -l 0x100000 -c "root=/dev/mtdblock/3 init=/linuxrc mem
=64M console=dummy"
Uncompressing Linux................................................... done, boo
ting the kernel.

登陆参数已改成了64m,但是进系统后只要使用大于32m的内存后就死机,郁闷了。难道a12线还是没连到cpu上!

出0入0汤圆

发表于 2008-9-12 21:39:16 | 显示全部楼层
to: new.ease
明天试试,正在肯sa1110相关技术资料。希望各位能提供更多资料以及接口信息。。

出0入0汤圆

发表于 2008-9-12 22:07:49 | 显示全部楼层
这么说可以加内存了?

出0入0汤圆

发表于 2008-9-12 22:09:31 | 显示全部楼层
to:ourfxt
你已经换了2×32M Ram?16M和32M ram的引脚是完全兼容的,地址线也一样,并没有多一根,所以我想还是软件问题。

出0入0汤圆

发表于 2008-9-12 22:29:58 | 显示全部楼层
64m比32m多用了a12这根地址线。32m的片子上的a12是nc。
只要a12连到了cpu上就应该可以升到64m或128m。

出0入0汤圆

 楼主| 发表于 2008-9-12 22:46:26 | 显示全部楼层
TO:楼上ALL
可能还要在MMU里完成地址映射的

各位兄弟这个机子还是十分有搞头的。大家拿点激_情出来。偶已经完成了REDBOOT的编译。完全可以代替原来的程序。(楼上的代码就是一个例子。大家可以试试。)

现在正在分析水之影兄弟机子上的测试代码(其实我的机子上也有)。只要分析这些代码完成。即使我们不会编译linux。我们也可以在板子上裸奔了。

我想组个团:如果有兄弟原意加入请在楼下留个言。

出0入0汤圆

发表于 2008-9-12 23:23:50 | 显示全部楼层
加入加入。
发现hi-pda上的高手也很多。

其实是觉得自己手太低了。

ps: to new.ease
能给下你的redboot的源码吗?

出0入0汤圆

 楼主| 发表于 2008-9-12 23:46:31 | 显示全部楼层
【249楼】 ourfxt
嗯我也在HI坛混。用户名一样。只是现在去的少些。

REDBOOT的源码太大。自己下吧。我修改过的部分我可以给你。但REDBOOT需要在linux上编译。如果你没有编译环境我给你也没有用。如果你有开发环境就找我要吧

我现在在分析测试代码。急需几个人一起来分析。我用IDA5.0。

出0入0汤圆

发表于 2008-9-12 23:55:57 | 显示全部楼层
我用vm虚拟机加fc9的操作系统。可能太新了,不知道会不会有问题。
编译器我有gcc 2.95和gcc 3.4.1,都是我编2410时用的,不知是否可用。
推荐个redboot的下载地址吧!修改部分给一下,可以的话尽量给的详细一点,因为我很菜的。
非常感谢new.ease 。

出0入0汤圆

 楼主| 发表于 2008-9-13 01:05:30 | 显示全部楼层
转贴(谢谢原作者Samfei (samfei@163.com))

简介: 本文是本人为工作需要而试验redboot的一个过程,我只是记录了试验的过程,希望能对别人使用redboot有些帮助. 本文没有系统性介绍redboot, 相关知识请参考其他资料.文章中具体修改的内容详细可以看附件patch.

一 目标
公司购买了EV40开发板:CPU AT91M40800, 内存2M+2M(扩展), FLASH 2M+4M(扩展), RTl8019AS芯片, FLASH是AM29LV160TE(2M)
公司自己开发自用的板子WX10: CPU AT91M40800, 内存4M, FLASH 8M, RTl8019AS芯片, FLASH是AM29LV641(8M)及其他应用功能芯片.
我主要的工作是开发系统的驱动软件,因此需要随时修改内核驱动,并调试,因此装入和启动的速度对工作效率是比较关键的.因为用hitool烧录方式启动 uclinux内核方式需要6~10分种一次.听”嵌入式linux群”kingmonkey说可以使用redboot, 因此决定试试.

二 环境建立
redboot是ecos操作系统的一部分,也是ecos操作系统最小配置的版本.因此要使用redboot,必须建立ecos操作系统环境. 到网站
http://sources.redhat.com/ecos/
查找其安装方法,按照说明采用了其网络方式安装,使用:
# wget --passive-ftp ftp://ecos.sourceware.org/pub/ecos/ecos-install.tcl
下载安装命令,并运行:
# sh ecos-install.tcl
安装了ecos 2.0.我把这个安装在/rh80/ecos下.ECOS_REPOSITORY就是/rh80/ecos/ecos-2.0.
运行 :
# cd /rh80/ecos
# . ecosenv.sh
设置环境变量.
由于linux操作系统中已经安装了
http://www.uclinux.org/pub/uClinux/m68k-elf-tools/arm-elf-tools-20030314.sh
因此我安装ecos时,没有选择安装arm-elf GNU tools工具.

三 编译redboot
由于ecos是个可配置的操作系统,因此下载安装的实际就是一个配置的仓库,要编译redboot就按照需要进行配置.配置的方式使用配置工具ecosconfig, 也有图形方式配置工具的,我没有用,只用字符界面的ecosconfig.
由于EV40类似EB40, 因此我的命令是:
# mkdir rom
# cd rom
# ecosconfig new eb40 redboot
#ecosconfig import /rh80/ecos/ecos-2.0/packages/hal/arm/at91/eb40/current/misc/redboot_ROMRAM.ecm
#ecosconfig tree
#make
结果编译出现错误.
因此怀疑编译器不兼容,于是重新安装ecos,此时选择arm-elf工具.此时运行. Ecosenv.sh 时,新下载的工具的路径包含在PATH中, 重新进行了redboot生成和编译,正确生成了install/bin/redboot.bin等文件.
将redboot.bin用hitool烧写到EV40的flash中,启动,没有任何反应.重新选择redboot的ROM版:
# ecosconfig new eb40 redboot
#ecosconfig import /rh80/ecos/ecos-2.0/packages/hal/arm/at91/eb40/current/misc/redboot_ROM.ecm
#ecosconfig tree
#make
编译,烧录,运行,仍然无反应.

四 配置硬件参数
由于EB40和EV40不完全相同,因此首先检查硬件参数的配置,找到配置的文件是: ecos/packages/hal/arm/at91/eb40/current/include/hal_platform_ints.h
主要是AT91_EBI配置参数表, EV40是:
_InitMemory:
.long 0x01002529 @ 0x01000000, 16MB, 2 cycles added after transfer, 16-bit, 6 wait states
.long 0x020020a1 @ 0x02000000, 16MB, 0x02002121 0 cycles added after transfer, 16-bit, 1 wait state
.long 0x03002529 @ unused
.long 0x40000000 @ unused
.long 0x02202021 @ unused ,CS 4
.long 0x02302021 @ unused ,CS 5
.long 0x60000000 @ unused
.long 0x70000000 @ unused
.long 0x00000001 @ REMAP commande
.long 0x00000006 @ 7 memory regions, standard read
.long AT91_EBI @ EBI address
.long 10f // address where to jump

WX10的配置是:

_InitMemory:
.long 0x01002529 // 0x01000000, 16MB, 2 cycles after transfer, 16-bit, 6 wait states
.long 0x020020a1 // 0x02000000, 16MB, 0 cycles after transfer, 16-bit, 1 wait state
.long 0x03002529 // unused
.long 0x30000000 // unused
.long 0x40000000 // unused
.long 0x50000000 // unused
.long 0x60000000 // unused
.long 0x70000000 // unused
.long 0x00000001 // REMAP command
.long 0x00000000 // 7 memory regions, standard read
.long AT91_EBI // External Bus Interface address
.long 10f // address where to jump
这里我要说明的一点是EV40和WX10的区别, EV40是用到CS6的,而WX10是不用CS6的, EV40有扩展内存,由CS4和CS5配置. EV40网卡地址是0x40010000, 而WX10的网卡地址是0x03210000.
修改了配置后, 编译,烧录,运行,仍然无反应.

向kingmonkey讨叫,kingmonkey认为可能是ecos版本不是最新的缘故,建议用cvs下载最新的版本. 用ecos-install.tcl是最新的稳定版,但不是最新的.

五 安装cvs版ecos
安装方法参考网站中Anonymous CVS:
# cd /rh80/ecos
# cvs -d server:anoncvs@ecos.sourceware.org:/cvs/ecos login
口令任意
# cvs -z3 -d server:anoncvs@ecos.sourceware.org:/cvs/ecos co -P ecos
这样呢就下载的最新的ecos,目录是/rh80/ecos/ecos, 修改ecosenv.sh中
ECOS_REPOSITORY=/rh80/ecos/ecos/packages ; export ECOS_REPOSITORY
这样呢,就使用最新用cvs下载的ecos了.原来的ecos-2.0仍然保留,并使用其下面的ecosconfig等工具,不用重新去下载ecosconfig工具了.

六 重新编译redboot
安装第三节的方法重新编译redboot,但仍然无法工作.因此只好去看资料和代码.并且下载了网站上预编译好的reboot.bin来试,仍然没有任何反应.
仔细阅读了ecos参考手册:
http://ecos.sourceware.org/docs-latest/ref/ecos-ref.html
中关于Installation and Testing部分中ARM/ARM7 Atmel AT91 Evaluation Boards (EBXX)的资料,它运行redboot的方式是通过angel和arm-elf-gdb的方式的,因此我就想先按照其方式试一下.
把 angel烧录到EV40板上,然后编译出redboot的RAM板(上面命令中redboot_ROM.ecm改成 redboot_RAM.ecm就是).然后安装手册,成功启动了redboot! 结合前面看了redboot的一些代码,怀疑缺省的EV40配置是只能在angel方式下启动的.

七 修改redboot配置
经过阅读其文件, 发现编译命令文件install/lib/target.ld中:
__reserved_bootmon = 0x01000000; . = __reserved_bootmon + 0x10000;
将运行开始位置后移了一个0x10000, 这个可能是造成不能直接flash启动的原因.经过检查,修改了多处跟这个有关的地方:
1. ecos/packages/hal/arm/at91/eb40/current/include/hal_platform_ints.h中0x1010000 à 0x100000
2. ecos/packages/hal/arm/at91/eb40/current/include/pkgconf/mlt_arm_at91_eb40_rom.h中
#define CYGMEM_SECTION_reserved_bootmon_SIZE (0x10000) 改成
#define CYGMEM_SECTION_reserved_bootmon_SIZE (0x00000)
3. ecos/packages/hal/arm/at91/eb40/current/include/pkgconf/mlt_arm_at91_eb40_rom.ldi中

CYG_LABEL_DEFN(__reserved_bootmon) = 0x01000000; . = CYG_LABEL_DEFN(__reserved_bootmon) + 0x10000;
改成:
CYG_LABEL_DEFN(__reserved_bootmon) = 0x01000000; . = CYG_LABEL_DEFN(__reserved_bootmon) + 0x00000;
[mlt_arm_at91_eb40_rom.ldi就是生成rom版redboot中target.ld的依据.]
然后重新配置redboot和编译,运行,烧录到EV40,正常启动了redboot. ^_^
[此时出现一个非常讨厌的问题,就是EV40板子一运行redboot,蜂鸣器不停的叫.我没有去检查为什么这样!后来只好在自己公司的板子上试了.]

八 配置flash
由于EB40采用的flash芯片和EV40采用的芯片是不一样的,因此很正常的结果是我们第七节编译处理的redboot是不能正确识别EV40的flash芯片.因此就必须考虑修改flash驱动.
此时本人对如何修改还不是太清楚,因此只要乖乖地去看ecos的资料.正好同事买了一本ecos的书,这样就省了看英文资料的麻烦.
从资料上,可以知道修改配置,主要是修改cdl文件. 跟EB40有关的flash包是:
Package CYGPKG_DEVS_FLASH_EB40 (FLASH memory support for Atmel AT91/EB40):
Package CYGPKG_DEVS_FLASH_ATMEL_AT29CXXXX (Support for Atmel AT29Cxxxx flash memory):
我就把CYGPKG_DEVS_FLASH_EB40包中采用的ATMEL芯片的包改成:
CYGPKG_DEVS_FLASH_AMD_AM29XXXXX
具体修改的文件是ecos/packages/devs/flash/arm/eb40/current/cdl/flash_eb40.cdl:
修改 requires CYGPKG_DEVS_FLASH_ATMEL_AT29CXXXX 为

requires CYGPKG_DEVS_FLASH_AMD_AM29XXXXX
修改 cdl_interface CYGINT_DEVS_FLASH_ATMEL_AT29CXXXX_REQUIRED {
display "Generic Atmel AT29CXXXX driver required"
为 cdl_interface CYGINT_DEVS_FLASH_AMD_AM29XXXXX_REQUIRED {
display "Generic Amd AM29XXXXX driver required"
修改 implements CYGINT_DEVS_FLASH_ATMEL_AT29CXXXX_REQUIRED
为 implements CYGINT_DEVS_FLASH_AMD_AM29XXXXX_REQUIRED

增加 requires CYGHWR_DEVS_FLASH_AMD_AM29LV160.
这里特别是要说明的是最后这一行, 因为CYGPKG_DEVS_FLASH_AMD_AM29XXXXX支持多种芯片,在配置的时候,需要指定哪些芯片可以识别,刚开始的时候 ecoscofing tree和编译后,就是没有看到驱动程序包含进去,弄了半天才搞明白,如果一种芯片也没有选,则驱动程序就不包含进去.因此需要加入至少一种芯片的选择, 最后一行就是选择AM29LV160的芯片.
同时修改 ecos/packages/ecos.db 的target eb40中:
修改 CYGPKG_DEVS_FLASH_ATMEL_AT29CXXXX
为 CYGPKG_DEVS_FLASH_AMD_AM29XXXXX

再修改ecos/packages/devs/flash/arm/eb40/current/src/eb40_flash.c:
增加 #define CYGNUM_FLASH_WIDTH 16
修改 #include "cyg/io/flash_at29cxxxx.inl"
为 #include "cyg/io/flash_am29xxxxx.inl"

此时,由于EV40板子乱叫的原因,我是用我们自己的板子WX10来调试了,而WX10采用的flash是AM29LV641,与AM29LV160是有区别的,因此我打开了flash调试,自己增加了一些调试语句,运行后,然后增加了AM29LV641的驱动,具体文件是 ecos/packages/devs/flash/amd/am29xxxxx/current/include/flash_am29xxxxx_parts.inl, 增加了AM29LV641配置:
+ { // MBM29LV641
+ device_id : FLASHWORD(0x22d7),
+ block_size : 0x10000 * CYGNUM_FLASH_INTERLEAVE,
+ block_count: 32,
+ device_size: 0x200000 * CYGNUM_FLASH_INTERLEAVE,
+ base_mask : ~(0x200000 * CYGNUM_FLASH_INTERLEAVE - 1),
+ bootblock : true,
+ bootblocks : { 0x000000 * CYGNUM_FLASH_INTERLEAVE,
+ 0x004000 * CYGNUM_FLASH_INTERLEAVE,
+ 0x002000 * CYGNUM_FLASH_INTERLEAVE,
+ 0x002000 * CYGNUM_FLASH_INTERLEAVE,
+ 0x008000 * CYGNUM_FLASH_INTERLEAVE,
+ _LAST_BOOTBLOCK
+ },
+ banked : false,
+ bufsiz : 1
+ },
具体还是放在CYGHWR_DEVS_FLASH_AMD_AM29LV160下,这样上面的cdl不用修改.[上面的修改中我没有修改flash的容量,因为AM29LV641是8M的,我还弄清楚如何改!我就先把它当成2M使用.]
经过上面的修改,重新编译运行后,redboot能够正确识别了flash的. ^_^

九 网卡驱动
google了”ecos 8019as driver”,查到了二个结果,我把二个驱动包都下载下来了.然后分别测试了一下,但都没有成功. 我最后选择dp83902a这种方式重点研究.
首先下载其软件包,解压到相应的目录. 然后增加了CYGPKG_DEVS_ETH_RLTK_ISA8019AS 定义.
由于EB40没有网卡驱动,因此只好自己增加配置.具体是redboot_ROM.ecm中增加:
package -hardware CYGPKG_DEVS_ETH_RLTK_ISA8019AS current ;
package -hardware CYGPKG_DEVS_ETH_NS_DP83902A current
package CYGPKG_IO_ETH_DRIVERS current ;
然后在文件ecos/packages/devs/eth/rltk/isa8019as/current/include/devs_eth_rltk_isa8019as.inl中修改网卡的起始地址和中断:
static dp83902a_priv_data_t dp83902a_eth0_priv_data = {
base: (cyg_uint8*) 0x03210000,
interrupt: 17,
tx_buf1: 0x40,
tx_buf2: 0x48,
rx_buf_start: 0x50,
rx_buf_end: 0x80,
hardwired_esa: false,
};
然后编译,烧录,运行.但运行到网卡时就没有反应了.网卡能检测到. 此时只好调试原代码,打开了dp83902a驱动的开关.发现发送数据包时,就不动了.经过检查其代码,发现mac地址有二种方式,一种是从网卡 eprom中取,另一种就是指定,于是我就把配置改成了指定:
static dp83902a_priv_data_t dp83902a_eth0_priv_data = {
base: (cyg_uint8*) 0x03210000,
interrupt: 17,
tx_buf1: 0x40,
tx_buf2: 0x48,
rx_buf_start: 0x50,
rx_buf_end: 0x80,
hardwired_esa: true,
esa: {0x00, 0x05, 0x0c, 0x04, 0x05, 0x06},
};
但效果仍然一样. 通过多次调试和分析, 想起了寄存器偏移量的问题. 我在EV40板子上用uclinux驱动网卡时也是同样的问题,后来把所有寄存器的偏移量*2就可以了.于是动手将全部寄存器偏移量*2.这样呢, 网卡驱动就可以了, 并能发送和接收数据包了.【这个呢,我自己也不太明白,是不是跟硬件的设置有关?】
但redboot启动时, 经过很长时间才到redboot提示符出来.原来是redboot启动时,自动通过bootp去取的IP地址,由于没有bootp服务器,因此要等待一段时间才出现超时, 让我误以为死机了.
建立好bootp服务器, redboot就正常启动,并且配置了ip地址. 然后ping也通了.
此时大功告成.!!!

十 启动uclinux
uclinux编译时必须注意的是: 由于 redboot运行时,必须要是使用部分内存,你可以用version命令看出使用了什么内存, 因此uclinux的入口地址就不能是0x2000000, 我选择了0x2010000, 前面留了64K.
将linux.elf拷贝到bootp和tftp服务器的/tftpboot下. 运行:
> load –m tftp linux.elf
> go 0x2010000
注意: 由于redboot串口使用38400波特率,而uclinux采用9600波特率,因此uclinux启动后出现乱码,没有关系,把波特率改成9600, 然后重新连接终端就可以了.

附: 修改的patch. Patch是针对WX10板子的. 由于我修改的ecos是cvs版本,每次checkout的不一定一样.因此patch就不一定能够直接使用, 另外呢,我的patch中也有一些我增加的调试语句,如果你要产品中使用,建议删除好了. Linux联盟收集整理

出0入0汤圆

 楼主| 发表于 2008-9-13 01:07:28 | 显示全部楼层
下面是我修改过的文件。直接换掉原文件就可以了

点击此处下载 ourdev_416310.rar(文件大小:3K) (原文件名:hal_platform_setup.rar)

出0入0汤圆

发表于 2008-9-13 07:15:34 | 显示全部楼层
嘿嘿,我也想加入。可惜太菜。。。。

出0入0汤圆

发表于 2008-9-13 08:35:06 | 显示全部楼层
to ourfxt:你换的是两颗64M芯片?那是会多一个地址线,如果换2颗32M芯片就不会有问题,但即使a12不接,32M-64M之间也应该可以读写,应该还是软件问题。

我想加入,不过现在我的充电器项目还需要一段时间,不想半途而废,等搞完这个项目就来搞这个。

出0入0汤圆

发表于 2008-9-13 09:10:02 | 显示全部楼层
恩,我换了两块hy57v561620。
但是我找到了a12连到了sa1110背面的一个过孔上,所以硬件应该是没问题的。
接下来想编译个测试程序测试下读写32M-64M。再修改下redboot。
希望能拿到linux的kernel。那些驱动要自己写的话没有这东西的原理图是不可能的。

出0入0汤圆

发表于 2008-9-13 11:15:47 | 显示全部楼层
测试new.ease的redboot

+... Waiting for network card: ..........No network interfaces found

RedBoot(tm) bootstrap and debug environment [ROM]
Non-certified release, version v2_0 - built 15:29:59, Sep 12 2008

Platform: Assabet development system (StrongARM 1110)
Copyright (C) 2000, 2001, 2002, Red Hat, Inc.

RAM: 0x00000000-0x02000000, 0x00014b88-0x01fb1000 available
FLASH: 0x50000000 - 0x52000000, 128 blocks of 0x00040000 bytes each.
== Executing boot script in 2.000 seconds - enter ^C to abort
RedBoot> fis load kernel
RedBoot> exec -b 0x100000 -l 0x100000 -c "root=/dev/mtdblock/3 init=/linuxrc mem
=32M console=dummy"
Uncompressing Linux.................................................. done, boot
ing the kernel.


(原文件名:20080913.jpg)

出0入0汤圆

发表于 2008-9-13 14:11:49 | 显示全部楼层
随便试了下wiggle+hjtag。只能读到ID号无法识别core。看来hjtag还没支持sa。

(原文件名:hjtag_sa.JPG)

出0入0汤圆

发表于 2008-9-13 16:41:34 | 显示全部楼层
不幸,笔丢了

出0入0汤圆

 楼主| 发表于 2008-9-13 17:10:55 | 显示全部楼层
【258楼】 rainbowu
你没有按住电源键再上电。
按住电源键试试。很好玩的说

【255楼】 ba1731
其实我也不过是只菜鸟

出0入0汤圆

发表于 2008-9-13 23:14:20 | 显示全部楼层
new.ease 刚试过了  是个硬件测试的   能详细讲一下 你是如何实现的吗????

出0入0汤圆

 楼主| 发表于 2008-9-14 00:12:23 | 显示全部楼层
【262楼】 rainbowu

为了提高大家的积极性兄弟应该上上图。

关于代码的实现其实很简单。在机子上原来就的测试代码。只是以前没有发现。根据水之影兄弟提供的资料。我找到测试代码实际放在1F40000处。在redboot中修了以前的测试代码进入方式。

这部分测试代码只有256K。应该包含了所有硬件的驱动代码。所以只要分析完这些代码。我想我们就可以用这机子真真正正的来做开发板了。不说移植个什么系统。至少我们也可以在上面裸奔一下。

出0入0汤圆

发表于 2008-9-14 03:09:08 | 显示全部楼层
呵呵.我现在缺个JTAG..刚买了...回来就开始调试

出0入0汤圆

发表于 2008-9-14 08:57:31 | 显示全部楼层
昨天系统搞坏,打算试下jtag烧写整个的,结果唉,从晚,12点到早7点半,7个半小时呀,烧写+验证,好在机器开着,我睡觉:)

出0入0汤圆

发表于 2008-9-14 08:59:12 | 显示全部楼层
那其实,直接把,1F40000处的代码搞出来,用jtag烧入,也挺方便

出0入0汤圆

发表于 2008-9-14 09:10:08 | 显示全部楼层
to ourfxt: hjtag确定不支持sa1110.

to new ease:那你知不知道原版的怎么样才能进入测试模式?

出0入0汤圆

 楼主| 发表于 2008-9-14 09:24:32 | 显示全部楼层
【267楼】 dack
原版的检测GPIO 1为高电平的时候进这测试模式。
可是偶没能找到GPIO 1在那里。电源键用的是GPIO 0,所以我就用了GPIO 0

出0入0汤圆

发表于 2008-9-14 10:33:26 | 显示全部楼层
我来把开机检测的图片补上

(原文件名:20080914.jpg)


(原文件名:20080914(001).jpg)


(原文件名:20080914(002).jpg)

出0入0汤圆

发表于 2008-9-14 10:37:42 | 显示全部楼层
希望各位能把外设的物理地址给弄出来 ,那样就是个真正的超值开发板了。

出0入0汤圆

 楼主| 发表于 2008-9-14 13:12:40 | 显示全部楼层
【270楼】 rainbowu
外设的物理地址不难,通过资料和反编译测试代码。我们很容易就知道了。只是要些时间。

出0入0汤圆

发表于 2008-9-14 15:48:52 | 显示全部楼层
new.ease
,这个测试页面我进去过,不过是在拆板的过程中进的,也许触发了说不定

出0入0汤圆

发表于 2008-9-14 16:21:18 | 显示全部楼层
我是个菜鸟,我想知道jtag是不是用IDC20座焊上去?怎么焊?所有的阵脚都焊上去么?方向是什么样的?希望高手上图。让我们这样的菜鸟都学习学习。另外连接电脑还需要什么设备?是不是还需要JTAG WIGGLER + 20芯连接线?我在等着高手们刷进去一个wince的系统,呵呵,问题有点菜。新手。喜欢折腾手中的电子设备。

出0入0汤圆

发表于 2008-9-14 16:28:35 | 显示全部楼层
【267楼】 dack  
原版的检测GPIO 1为高电平的时候进这测试模式。
可是偶没能找到GPIO 1在那里。电源键用的是GPIO 0,所以我就用了GPIO 0

在板子上的右侧不是多一个按钮,就是a b ok键旁边,而且旁边写着sw2,是不是另一个开关?呵呵电脑上的开关键不是sw么?

出0入0汤圆

发表于 2008-9-14 17:26:34 | 显示全部楼层

(原文件名:100_0372-s.JPG)

原本用外壳的,只是经常拆装,看来还是拆开最好了

出0入0汤圆

 楼主| 发表于 2008-9-14 22:19:30 | 显示全部楼层
【276楼】 yibin818

还有得拍么??

出0入0汤圆

发表于 2008-9-14 23:44:07 | 显示全部楼层
to: 梨花剑雨
你看看我这种接线方法,或许能帮到你

(原文件名:20080914(003).jpg)


(原文件名:20080914(004).jpg)


(原文件名:20080914(005).jpg)


(原文件名:20080914(006).jpg)


(原文件名:20080914(007).jpg)


(原文件名:20080914(008).jpg)

串口和jtag线从电话线孔出来,使用方便多了

出0入0汤圆

发表于 2008-9-15 00:11:55 | 显示全部楼层
谢谢,rainbowu

我知道可以这样接的,谢谢

出0入0汤圆

发表于 2008-9-15 00:44:56 | 显示全部楼层
这么晚还在  o(∩_∩)o...

出0入0汤圆

发表于 2008-9-15 10:40:10 | 显示全部楼层
刚改好的调试口,哈哈。

 (原文件名:P1020198.JPG) 

出0入0汤圆

发表于 2008-9-15 11:17:54 | 显示全部楼层
ls无敌

出0入0汤圆

发表于 2008-9-15 11:53:56 | 显示全部楼层
淫才啊 !!!!!!!

出0入0汤圆

 楼主| 发表于 2008-9-15 13:11:01 | 显示全部楼层
【281楼】 ourfxt
调试口????
准备用什么工具调试了,上网找了半天没找到支持SA1110

出0入0汤圆

发表于 2008-9-15 13:35:32 | 显示全部楼层
当然是用printf啦!

出0入0汤圆

发表于 2008-9-15 13:38:04 | 显示全部楼层
楼上经典,

其实要是能把LCD调出来,那最好了

出0入0汤圆

发表于 2008-9-15 15:06:21 | 显示全部楼层
to  ourfxt
给个内部图,我也好照着改造改造

出0入0汤圆

发表于 2008-9-15 15:54:09 | 显示全部楼层
vr这一侧内壳上有一个方孔,应该是给外接显示用的,外边的胶条上没有。接口从这里引出最好,甚至外面的胶条上可以不开孔,用的时候拿掉胶条,不用的时候装上胶条不影响外观。稍微麻烦一点的是接口如何固定,热熔胶的粘性稍小了一点,多次插拔容易掉,不过多打点胶应该差不多。

出0入0汤圆

发表于 2008-9-15 17:55:32 | 显示全部楼层
http://swkyer.bokee.com/936997.html
一 JtagDebug介绍
JtagDebug是一个简单的ARM处理器的调试软件,运行于宿主机(通常是PC),通过PC机的并口控制ARM核的Jtag状态机,实现ARM和Embedded-ICE的控制,从而达到控制ARM处理器运行的目的。

本人愚钝,请各位看看这个是否我们调试程序用的上????

出0入0汤圆

发表于 2008-9-16 00:45:31 | 显示全部楼层
从应用上来讲, 用SDA-01上网比较慢, 原因是内存不够, free了一下看看:

# free
              total         used         free       shared      buffers
  Mem:        30628        29976          652            0            0
 Swap:            0            0            0
Total:        30628        29976          652
#

按照我用Zaurus C1000的经验, 在CF卡上开128MB的swap就能明显提高速度...为此需要一些工具:
fdisk
mkswap
swapon
swapoff
这些工具在util-linux包里, 我手上没有交叉编译器, 如果谁有兴趣的话可以编译看看...

出0入0汤圆

发表于 2008-9-16 08:41:58 | 显示全部楼层
继续顶。。。。

出0入0汤圆

发表于 2008-9-16 14:26:45 | 显示全部楼层
http://auction1.taobao.com/auction/item_detail-0db1-287344ada10bc9745e82bc996cbf3914.jhtml
这里还有一台,,我是没那水平玩。

出0入0汤圆

发表于 2008-9-16 14:48:27 | 显示全部楼层
兄弟,220贵了点吧。便宜点吧。我淘宝卡上就剩200了。呜呜!

出0入0汤圆

发表于 2008-9-16 14:57:51 | 显示全部楼层
是我找到的,,不是我卖,,

出0入0汤圆

发表于 2008-9-17 08:50:03 | 显示全部楼层
继续UP。。继续盖楼。。。。

出0入0汤圆

发表于 2008-9-17 09:34:05 | 显示全部楼层
希望高手们继续

出0入0汤圆

 楼主| 发表于 2008-9-17 20:49:12 | 显示全部楼层
那位送我两片 hy57v561620
找了找,几十台电脑已然没有这样的片子

我想应该不用重新编译内核了。在redboot中把RAM映射上去就好了。现在肯定是没有MAP上去的

本贴被 new.ease 编辑过,最后修改时间:2008-09-17,20:50:36.

出0入0汤圆

发表于 2008-9-18 08:29:04 | 显示全部楼层
我现在最希望的是那位高手把字库的问题帮忙解决一下,12号字体太小,看书实在太累了,还有机子的看书程序能不能编译一个,谢谢

出0入0汤圆

发表于 2008-9-18 11:42:13 | 显示全部楼层
to new.ease :
    电脑用的SDRAM内存一条是64bit的,而这个板子使用的是单片16bit的内存,这样的话想找32MB的芯片就只能去找那种一条上有且只有4片芯片,而且是128MB的电脑内存,也就是单面128MB的笔记本内存,在台式机上找应该是找不到的。

出0入0汤圆

发表于 2008-9-18 12:09:16 | 显示全部楼层
我拆的一条都用完了。2410开发板,路由器和NAS上都用得。

掏宝全新价差不多20+块/片。

建议阿莫去拆机市场掏点,然后拆了分给大家。
内存检测好坏非常容易的。

出0入0汤圆

发表于 2008-9-18 13:07:01 | 显示全部楼层
http://auction1.taobao.com/auction/item_detail-0db2-590214a308b50cef2d6df16154b4a698.jhtml
这个上面的不知道能不能用,芯片型号是k4s561632
sdram的比ddr的贵好多

本贴被 dack 编辑过,最后修改时间:2008-09-18,13:18:25.

出0入0汤圆

发表于 2008-9-18 13:17:41 | 显示全部楼层
回楼上,应该可以。

出0入0汤圆

 楼主| 发表于 2008-9-18 15:56:53 | 显示全部楼层
【302楼】 ourfxt
能不能帮我确认一下。英飞凌的HYB39S256160DT-7.5能用否

出0入0汤圆

发表于 2008-9-18 16:23:24 | 显示全部楼层
这个恐怕不行,好象是16Mx4bit的,板子上的是4Mx16bit的,不知道改软件行不行

出0入0汤圆

发表于 2008-9-18 16:40:11 | 显示全部楼层
http://auction1.taobao.com/auction/item_detail-0db1-bfa2cef7cd9974526f3ffc0308739567.jhtml
这个店有几个,不过俺不会玩。好像涨价了!!

出0入0汤圆

发表于 2008-9-18 17:41:10 | 显示全部楼层
原来那家淘宝店又有货了,可惜涨价了,要200呢
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-16 23:20

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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