主题 : eCos2移植到mini2440的详细步骤 复制链接 | 浏览器收藏 | 打印
自由,自强,共享,共创。
级别: 论坛版主
UID: 12573
精华: 27
发帖: 8838
金钱: 46490 两
威望: 9298 点
贡献值: 27 点
综合积分: 18216 分
注册时间: 2010-01-09
最后登录: 2019-07-16
楼主  发表于: 2010-02-04 13:16

 eCos2移植到mini2440的详细步骤

管理提醒: 本帖被 mindee 设置为精华(2011-01-03)
以下文字来自附件中的文档描述:

一直以来我想做的事情就是真正的让eCos跑在我的MINI2440开发板上,前面做了一些准备的工作,先让eCos跑在vmware(i386)上,以及skyeye(3sc2410)上。我想我已经有了能够移植到MINI2440的知识基础了。

利用skyeye 模拟运行eCos
根据前面在Skyeye上模拟运行的基础,很容易搭建一个模拟Skyeye的模拟环境,eCos的代码不需要修改,只要修改skyeye.conf文件即可,把里面的s3c42410换成s3c2440即可。这一步很容易,运行的结果和在S3C2410上的模拟结果一样。

移植eCos到MINI2440
直接编一个eCos下载到我的MINI2440的板子上,运行失败,电脑串口没有任何的输出信息,不知道eCos是否在运行。
再次分析vectors.S这个eCos的系统启动代码:
复制代码
  1. start:
  2. LED 5
  3. #if defined(CYG_HAL_STARTUP_RAM) && \
  4. !defined(CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS)
  5. // If we get restarted, hang here to avoid corrupting memory
  6. ldr r0,.init_flag
  7. ldr r1,[r0]
  8. 1: cmp r1,#0
  9. bne 1b
  10. ldr r1,init_done
  11. str r1,[r0]
  12. #endif


注意到了文件中的LED X 这样的代码分散在vectors.S中。看来这个是用于系统调试用的一个宏,使用LED灯调试系统是最常用的方法了。重新修改文件中关于LED这个宏的定义,定义成MINI2440上的控制LED灯亮的代码:
复制代码
  1. .macro LED x
  2. ldr r6,=0x56000010
  3. ldr r7,=0x155555
  4. str r7,[r6]
  5. ldr r6,=0x56000014
  6. r7=x
  7. mov r7,r7,lsl #5
  8. ldr r5 ,[r6]
  9. orr r5,r5,#0x1f0
  10. bic r7 , r5 ,r7
  11. str r7,[r6]
  12. .endm
[ 此帖被mindee在2010-02-04 13:29重新编辑 ]
附件设置隐藏,需要回复后才能看到
新手如何向我们反馈有效的信息,以便解决问题,见此贴:
http://www.arm9home.net/read.php?tid-14431.html

[注]: 此处签名链接仅为指引方向,而非解答问题本身.
级别: 新手上路
UID: 104115
精华: 0
发帖: 10
金钱: 50 两
威望: 10 点
贡献值: 0 点
综合积分: 20 分
注册时间: 2014-05-14
最后登录: 2018-08-10
1楼  发表于: 2018-07-13 10:38

 回 楼主(mindee) 的帖子