u-boot-1.1.6移植之dm9000

发布者:Heavenly999最新更新时间:2023-06-13 来源: elecfans关键字:u-boot  移植  dm9000 手机看文章 扫描二维码
随时随地手机看文章

网卡dm9000的执行过程(u-boot版本:u-boot-1.1.6):

在board.c里面有eth_initialize(gd->bd);

eth_initialize的实现在eth.c里面,但是eth_initialize函数里面没有dm9000的初始化eth_init

 

常见有nfs,tftp,ping命令会用到网络设备,可以从这里入手。

U_BOOT_CMD(

                ping,      2,            1,            do_ping,

                "pingt- send ICMP ECHO_REQUEST to network hostn",

                "pingAddressn"

);

 

而其处理函数do_ping如下:

int do_ping (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])

{

                if (argc < 2)

                                return -1;

 

                NetPingIP = string_to_ip(argv[1]);

                if (NetPingIP == 0) {

                                printf ("Usage:n%sn", cmdtp->usage);

                                return -1;

                }

 

                if (NetLoop(PING) < 0) {

                                printf("ping failed; host %s is not aliven", argv[1]);

                                return 1;

                }

 

                printf("host %s is aliven", argv[1]);

                return 0;

}

 

看上面红色标注的NetLoop,在net.c里面实现

eth_halt();            //Stop the interface.

#ifdef CONFIG_NET_MULTI

                eth_set_current();

#endif

                if (eth_init(bd) < 0) {                    //调用初始化函数,如果定义了cs8900,则使用cs8900的eth_init函数,这里使用dm9000

                                eth_halt();

                                return(-1);

                }

 

NetLoop函数的原型,参数是proto_t结构体指针

int NetLoop(proto_t protocol)

而proto_t有:

typedef enum { BOOTP, RARP, ARP, TFTP, DHCP, PING, DNS, NFS, CDP, NETCONS, SNTP } proto_t;

以上表明,当使用bootp,tftp,ping,nfs等命令的时候会调用NetLoop,进而对各种网卡进行对应于配置的初始化。

以上,是顶层对dm9000的调用过程,下面再看dm9000x.c执行过程

入口eth_init

                1、RESET device 复位 ,检测网络连接类型

                2、NIC Type: FASTETHER, HOMERUN, LONGRUN    NIC类型

                3、GPIO0 on pre-activate PHY  设置GPIO

                4、Set PHY   设置工作模式

                5、Program operating register设置寄存器       


关键字:u-boot  移植  dm9000 引用地址:u-boot-1.1.6移植之dm9000

上一篇:u-boot-1.1.6 设置新分区支持设备树
下一篇:移植u-boot-1.1.6之NOR的支持

推荐阅读最新更新时间:2024-11-13 10:38

ucosii在stm32上的移植详解1
虽然目前网上已经有不少关于ucosii在stm32上的移植版本,包括micrium也有官方移植版本。但这些版本具体是怎么移植出来的,又该怎么基于移植好的ucosii开发应用软件,网上介绍的并不多。这里介绍一下我的移植经历,希望对大家有所帮助。 我的移植基本上是从零开始的。首先想要做好移植,有两方面的内容是必须要了解。1.目标芯片;2.ucosii内核原理。 虽然我们移植的目标芯片是stm32,但操作系统的移植基本是针对Cortex-M3内核(以下简称CM3)而言的,所以我们只需了解CM3内核就好了。stm32芯片就是CM3内核加上各种各样的外设。 怎么才能了解CM3呢?看一本书 ARM Cortex-M3权威指南 (
[单片机]
让STM32CubeMX帮你写代码,移植代码工程。
下载template,实验1:https://github.com/qqfoxmail/helloworld.git 在SYSTEM文件下,新建头文件夹led,添加头文件led.h 或 注意路径!!!!! 打开keil5添加头文件路径 keil5中SYSTEM下新建led.c文件 之后移植CubeMX中的所需代码 注意!!! 把CubeMX中函数前static去掉!!!!!不然编译会报错!!! ..SYSTEMledled.h(6): error: #114: function MX_GPIO_Init was referenced but not defined
[单片机]
让STM32CubeMX帮你写代码,<font color='red'>移植</font>代码工程。
linux-2.6.32在mini2440开发板上移植-移植yaffs2
编者:这里并不是移植yaffs2文件系统,只是给内核打个补丁,使之支持yaffs2文件系统。 1、获取yaffs2 源代源码 现在大部分开发板都可以支持yaffs2 文件系统,它是专门针对嵌入式设备,特别是使用nand flash 作为存储器的嵌入式设备而创建的一种文件系统,早先的yaffs 仅支持小页(512byte/page)的nand flash,现在的开发板大都配备了更大容量的nand flash,它们一般是大页模式的(2K/page),使用yaffs2 就可以支持大页的nand flash,下面是yaffs2 的移植详细步骤。 在 http://www.yaffs.net/node/346 可以下载到最新的yaffs2
[单片机]
手表效应:Taptic Engine移植到手机上怎么样?
  Apple Watch上的Taptic Engine振动器   新浪手机讯 6月1日上午消息,苹果公司做产品的优势正在得到集中体现,现在你会在iPad上看到Mac上出现过的防眩光技术;未来,可能也会在手机上感受到手表上那颗特别的Taptic Engine振动器。   这是苹果公司为Apple Watch研发的特殊的振动器,在评测那块手表的时候,新浪手机曾谈到这是一种特殊的体验,它不同于手机的高频振动器,在通知到来的时候,你会觉得手腕被人轻轻拍了一下。   Taptic Engine能准确再现点击、触碰以及其他触觉效果。它利用线性致动器,配合震动效果,达到特殊的触觉反馈。 相比屏幕或处理器等技术,这是苹
[手机便携]
STM32 之二 HAL库详解 及 手动移植
HAL库结构   说到STM32的HAL库,就不得不提STM32CubeMX,其作为一个可视化的配置工具,对于开发者来说,确实大大节省了开发时间。STM32CubeMX就是以HAL库为基础的,且目前仅支持HAL库及LL库!首先看一下,官方给出的HAL库的包含结构: - **stm32f2xx.h**主要包含STM32同系列芯片的不同具体型号的定义,是否使用HAL库等的定义,接着,其会根据定义的芯片信号包含具体的芯片型号的头文件: #if defined(STM32F205xx) #include stm32f205xx.h #elif defined(STM32F215xx) #include stm32f215xx
[单片机]
移植u-boot-2010.09到S3C2440(三)——判断NAND还是NOR启动的汇编代码
参考文档:s3c2440的nandflash启动 guess_flash: #define BWSCON 0x48000000 ldr r4, =BWSCON ldr r6, ands r6, r6, #0x6 mov r6, r6, LSL#4 ldr r5, =GPBDAT str r6, bl guess_flash 这几行的意思是: 获取0X48000000地址的值,获得其 位,在LEDs显示其值。 结论: 通过LED的显示,可以发现在NAND和在NOR运行的显示效果不同。
[单片机]
stm32固件库在stm3210e-eval开发板上的移植
  首先建立工程,我习惯性在工程文件夹下建立以下几个文件夹,分别放不同的文件,以区别不同文件的不同作用,方便寻找和移植。如下:      在PROJECT文件夹下建立工程项目,启动keil,开始建立工程。      注意建立在PROJECT文件夹下。      随便起个名字,我起的名字是MDK,建立后,会提示你选择器件型号         我的器件如上图,所以选择。确定后会询问你是否加入启动文件。我们用stm32的固件库,所以不用mdk的,选择否。      下面配置工程的选项option,右键点Target会看到Options。      以下是各个选项卡的配置内容。      
[单片机]
stm32固件库在stm3210e-eval开发板上的<font color='red'>移植</font>
Linux 蓝牙系列 -- ARM-Linux蓝牙工具的移植
一 内核修改 ------------------------------------------------------------ 将内核的蓝牙做成模块形式。 并配置如下, Bluetooth subsystem support --- L2CAP protocol support SCO links support RFCOMM protocol support RFCOMM TTY support BNEP protocol support HIDP protocol support (NEW) Bluetooth d
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved