fl2440内核移植(四)——DM9000移植

--------------------------------------------------------------------------------------------------------------------------------

   系统环境:Centos 6.5

   板子芯片:s3c2440

   内核版本:linux 3.0

      编译器:arm-linux-gcc 4.5.4

          作者:Lu Zengmeng <1540999272@qq.com>

--------------------------------------------------------------------------------------------------------------------------------


1、修改arch/arm/mach-s3c2440/mach-smdk2440.c

#include<linux/dm9000.h>  //添加dm9000头文件

在设备结构体中添加dm9000网卡

static struct platform_device *smdk2440_devices[] __initdata = {
     &s3c_device_ohci,
     &s3c_device_lcd,
     &s3c_device_wdt,
     &s3c_device_i2c0,
     &s3c_device_iis,
     &s3c_device_rtc,
     &s3c_device_dm9000,
};

添加如下代码:

/*DM9k ethernet driver info,add by Lu Zengmeng,2015-11-25*/
#define DM9000_BASE    (S3C2410_CS4 + 0x300)
static struct resource s3c_dm9000_resource[] = {
             [0] = {
                                 .start = DM9000_BASE,
                                  .end   = DM9000_BASE + 3,
                                  .flags = IORESOURCE_MEM
             },
             [1] = {
                                  .start = DM9000_BASE + 4,
                                  .end   = DM9000_BASE + 7,
                                  .flags = IORESOURCE_MEM
             },
             [2] = {
                                 .start = IRQ_EINT7,
                                 .end   = IRQ_EINT7,
                                 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE,
             }
};


/*  The DM9000 has no eeprom, and it's MAC address is set by
    the bootloader before starting the kernel.*/


static struct dm9000_plat_data s3c_dm9000_pdata = {
            .flags      = (DM9000_PLATF_16BITONLY | DM9000_PLATF_NO_EEPROM),
};


static struct platform_device s3c_device_dm9000 = {
            .name       = "dm9000",
            .id     = -1,
            .num_resources  = ARRAY_SIZE(s3c_dm9000_resource),
            .resource   = s3c_dm9000_resource,
            .dev        = {
                                                .platform_data  = &s3c_dm9000_pdata,
                                },
};
/*End of DM9K*/

2、配置menuconfig,使能DM9000相关驱动

                        Device Drivers--->

                         [*]Network device support--->

                                 --- Network device support   ---                                                                                
  │ │                                      < >   Dummy net driver support                                                                              
  │ │                                      < >   Bonding driver support                                                                                
  │ │                                      < >   MAC-VLAN support (EXPERIMENTAL)                                                                        
  │ │                                      < >   EQL (serial line load balancing) support                                                          
  │ │                                      <M>   Universal TUN/TAP device driver support                                                              
  │ │                                      < >   Virtual ethernet pair device                                                                          
  │ │                                      -*-   Generic Media Independent Interface device support                                                    
  │ │                                      < >   PHY Device support and infrastructure  --->                                                          
  │ │                                      [*]   Ethernet (10 or 100Mbit)  ---> 

 --- Ethernet (10 or 100Mbit)                                                                              
  │ │                                      < >   ASIX AX88796 NE2000 clone support                                                                    
  │ │                                      < >   SMC 91C9x/91C1xxx support                                                                            
  │ │                                      <*>   DM9000 support                                                                                      
  │ │                                      (4)     DM9000 maximum debug level                                                                        
  │ │                                      [ ]     Force simple NSR based PHY polling

重新编译内核后烧录到开发板上测试

>: ifconfig 
eth0      Link encap:Ethernet  HWaddr 08:00:3E:26:0A:51  
          inet addr:192.168.11.51  Bcast:192.168.11.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:32 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:2238 (2.1 KiB)  TX bytes:0 (0.0 B)
          Interrupt:51 Base address:0x2300 

移植完成

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
STM32F103移植FreeModbus实现ModbusTCP是指在STM32F103系列芯片上将FreeModbus协议栈移植并实现ModbusTCP通信功能。有一些工程和案例已经验证了该功能的可行性,可以直接使用或稍加修改后应用于实际工程或作为学习ModbusTCP的案例。 该移植实现了基本的功能码,包括01、02、03、04、05、06、15、16等,在代码中实现了读线圈、写线圈、读离散输入、读输入寄存器、读保持寄存器、写保持寄存器等功能,可以与PLC等设备进行通信。 因此,通过在STM32F103芯片上移植FreeModbus协议栈,可以实现ModbusTCP通信,并具备了基本的Modbus功能码的支持。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [STM32F103移植FreeModbus同时实现ModbusRTU和ModbusTCP.zip](https://download.csdn.net/download/qq_15181569/12527801)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [基于STM32_DM9000_UIP_FreeModbus的Modbus-TCP功能实现工程下载](https://download.csdn.net/download/tcjy1000/7325947)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [STM32移植FreeModbus实现ModbusRTU.zip](https://download.csdn.net/download/qq_15181569/12264170)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值