单片机
返回首页

郭天祥-S3C2440开发板Linux2.6.31移植教程

2024-07-31 来源:cnblogs

本人使用的开发板是广州天嵌的TQ2440开发板


最近使用了郭天祥的教程学习S3C2440嵌入式linux2.6.31系统移植,移植yaffs2文件系统成功后,发现开发板移植的系统的ping命令无法ping通电脑。后面通过烧录开发板自带的linux镜像文件和yaffs2文件系统,对比之后。发现本人的笔记本(联想G40系列),如果只接通过本地网卡与开发板直连,无法ping通,但是使用自己的台式电脑,可以使用网线直连开发板ping通,确认了问题的原因是:


1.笔记本在网线直连开发板的情况下,无法ping通开发板。


2.个人移植的linux 2.6.31操作系统驱动存在问题。


第一个问题很好解决,如果要继续使用笔记本,可以将开发板连接到局域网内,而不是通过笔记本本地网卡直连。


第二个问题,就是一直操作系统的时候出现了问题。由于本人是根据郭天祥团队的手册《郭天祥 - linux2.6.31移植》(下载地址http://download.csdn.net/detail/camelbrand/9777501)来完成的移植,所以很可能是在该过程中出现了问题。


本人做出的变更,取消文档中对于devs.h和devs.c的操作,如下代码不加入devs.h和devs.c中


修改 arch/arm/plat-s3c24xx/devs.c 在最前面 38 行加入:


 1 #include //别忘加这个头文件

 2 /*DM9000*/

 3 static struct resource s3c_dm9000_resource[] = 

 4 {

 5     [0] = {

 6         .start = S3C2410_CS4,

 7         .end = S3C2410_CS4 + 3,

 8         .flags = IORESOURCE_MEM,

 9     },

10     [1] = {

11         .start = S3C2410_CS4 + 4,

12         .end = S3C2410_CS4 + 4 + 3,

13         .flags = IORESOURCE_MEM,

14     },

15     [2] = {

16         .start = IRQ_EINT18, /*use eint18 GPG10*/

17         .end = IRQ_EINT18,

18         .flags = IORESOURCE_IRQ,

19             }

20     };

21 static struct dm9000_plat_data s3c_dm9000_platdata = 

22 {

23         .flags = DM9000_PLATF_16BITONLY,

24 };

25 extern struct platform_device s3c_device_dm9000 = 

26 {

27     .name = 'dm9000',

28     .id = 0,

29     .num_resources = ARRAY_SIZE(s3c_dm9000_resource),

30     .resource = s3c_dm9000_resource,

31     .dev = 

32     {

33         .platform_data = &s3c_dm9000_platdata,

34     }

35 };

36 

37 EXPORT_SYMBOL(s3c_device_dm9000);


在 arch/arm/plat-s3c/include/plat/devs.h 中加入一行:

extern struct platform_device s3c_device_dm9000;


修改linux-2.6.31archarmmach-s3c2440mach-smdk2440.c


头文件添加:#include


static struct s3c2410fb_mach_info smdk2440_fb_info __initdata结构体定义后添加:


 1 /* DM9000 */

 2 static struct resource s3c_dm9k_resource[] = {

 3     [0] = {

 4         .start    = S3C2410_CS4,

 5         .end    = S3C2410_CS4 + 3,

 6         .flags    = IORESOURCE_MEM,

 7     },

 8     [1] = {

 9         .start    = S3C2410_CS4 + 4,

10         .end    = S3C2410_CS4 + 4 + 3,

11         .flags    = IORESOURCE_MEM,

12     },

13     [2] = {

14         .start    = IRQ_EINT7,

15         .end    = IRQ_EINT7,

16         .flags    = IORESOURCE_IRQ | IRQF_TRIGGER_RISING,

17     }

18 

19 };

20 

21 static struct dm9000_plat_data s3c_dm9k_platdata = {

22     .flags    = DM9000_PLATF_16BITONLY,

23 };

24 

25 struct platform_device s3c_device_dm9000 = {

26     .name        = 'dm9000',

27     .id            = 0,

28     .num_resources    = ARRAY_SIZE(s3c_dm9k_resource),

29     .resource        = s3c_dm9k_resource,

30     .dev            = {

31         .platform_data = &s3c_dm9k_platdata,

32     }

33 };


重新编译,就可以正常使用dm9000.c网卡了


进入单片机查看更多内容>>
相关视频
  • RISC-V嵌入式系统开发

  • SOC系统级芯片设计实验

  • 云龙51单片机实训视频教程(王云,字幕版)

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

精选电路图
  • 红外线探测报警器

  • 短波AM发射器电路设计图

  • 使用ESP8266从NTP服务器获取时间并在OLED显示器上显示

  • 用NE555制作定时器

  • 带有短路保护系统的5V直流稳压电源电路图

  • 基于TDA2003的简单低功耗汽车立体声放大器电路

    相关电子头条文章