⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄

📁 对linux下边的gzip的文件的分析的代码
💻
📖 第 1 页 / 共 2 页
字号:
找到Size of malloc() pool这部分设置,改成这样吧,反正我是照着人家来做的,你自己研究下吧^_^。 




#define CFG_MONITOR_LEN            (256 * 1024)   /* Reserve 256 kB for Monitor      */ 

#define CFG_ENV_SIZE                 (64*1024)        /* 1024 bytes may be used for env vars*/ 

#define CFG_MALLOC_LEN              (CFG_ENV_SIZE + 128*1024 ) 

#define CFG_GBL_DATA_SIZE    128  /* size in bytes reserved for initial data */ 

#define CFG_ENV_IS_IN_FLASH         1  这个必不可少,如果你想把你的参数保存到flash的话(有些板是保存到EEPRAM中去的,但是s3c44b0的话还是保存到flash吧) 

#define CFG_ENV_ADDR    (PHYS_FLASH_1+0x40000)  这个就是你的参数保存在flash里的起始地址了 

#define CFG_ENV_OFFSET 0x40000      这个我后来看它源程序发现如果你上一步没有设置它的起始地址的话就会用它来作默认地址的了 

#define CONFIG_AUTO_COMPLETE 




其它地方没有深究哦,有些好像不要也行,你就试试吧。 




找到Hardware drivers部分,这应该是网络芯片设置吧,参考一下这个吧(要看芯片的): 

#define CONFIG_DRIVER_RTL8019        这个就要看你的板上用的是什么网卡了(这个是台湾出的,有10M) 

#define RTL8019_BASE        0x06000000   这个是网卡相就寄存器的起始地址 

以下部分我试过不要也行,你试下吧 

#define RTL8019_BUS32             0 

#define CONFIG_SMC_USE_16_BIT 

#undef  CONFIG_SHOW_ACTIVITY 

#define CONFIG_NET_RETRY_COUNT           10       应该是重试的次数吧 




#define CONFIG_BAUDRATE             115200  设置波特率 




#define CONFIG_COMMANDS          ( CONFIG_CMD_DFL | \ 

                                                        CFG_CMD_DATE | \ 

                                                        CFG_CMD_ELF    | \ 

                                                        CFG_CMD_NET    | \ 

                                                        CFG_CMD_EEPROM   | \ 

                                                        CFG_CMD_I2C            | \ 

                                                        CFG_CMD_FAT | \ 

                                                        CFG_CMD_JFFS2) 

把CFG_CMD_EEPROM改成CFG_CMD_FLASH吧,虽然不改也是可以的,具体没考究。 




以下是板上env参数设置,看一下吧,其实我觉得了解一下就行的了,只是一些初始设置值,以后可以用命令setenv  saveenv来修改的。 

#define CONFIG_BOOTDELAY   3                这个就是运行bootcmd之前的等待时间 

#define CONFIG_BOOTARGS  "devfs=mount root=ramfs console=ttyS0,115200" 引导uClinux的时候传递的参数,不会就先不用管它也行。 

#define CONFIG_ETHADDR       00:50:c2:1e:af:fb    网卡的物理地址MAC 

#define CONFIG_NETMASK  255.255.255.0       掩码地址,设置过ip的人都应该知道吧 

#define CONFIG_IPADDR   192.168.0.30          这是你板上网卡8019的ip地址 

#define CONFIG_SERVERIP       192.168.0.10       这是你宿主机的ip地址,以后用tftp下载的时候用到,一定要跟你的宿主机一致才行。 

#define CONFIG_BOOTFILE       "u-boot.bin"        这个就是你要下载文件的默认名字 

#define CONFIG_BOOTCOMMAND   "bootm 0x50000"   这是bootdelay后运行的命令 




Miscellaneous configurable options部分,参考一下吧: 

#define    CFG_LONGHELP                       /* undef to save memory       */ 

#define    CFG_PROMPT      "s3c44b0=>"   这是进入命令模式下的提示符,改个帅一点的吧 

#define    CFG_CBSIZE        256         /* Console I/O Buffer Size     */ 

#define    CFG_PBSIZE (CFG_CBSIZE+sizeof(CFG_PROMPT)+16) /* Print Buffer Size */ 

#define    CFG_MAXARGS          100              /* max number of command args  */ 

#define CFG_BARGSIZE             CFG_CBSIZE /* Boot Argument Buffer Size       */ 




#define CFG_MEMTEST_START     0x0C400000   /* memtest works on     */ 

#define CFG_MEMTEST_END           0x0C800000   /* 4 ... 8 MB in DRAM  */ 

#undef  CFG_CLKS_IN_HZ              /* everything, incl board info, in Hz */ 

#define    CFG_LOAD_ADDR             0x0c008000    默认的下载地址 

#define    CFG_HZ                      1000              /* 1 kHz */ 

#define CFG_BAUDRATE_TABLE  { 9600, 19200, 38400, 57600, 115200 } 可供选择的波特率 







Physical Memory Map部分,比较重要,修改你的sdram和flash的地址和容量。 

#define CONFIG_NR_DRAM_BANKS 1        我们只占用了一个Bank用来映射sdram 

#define PHYS_SDRAM_1            0x0c000000     sdram的起始地址 

#define PHYS_SDRAM_1_SIZE   0x00800000     sdram的容量(8M) 

#define PHYS_FLASH_1              0x00000000     flash的起始地址 

#define PHYS_FLASH_SIZE        flash的容量(2M) 

#define CFG_FLASH_BASE         PHYS_FLASH_1   定义多个名字而已,其它地方会用到 







FLASH organization部分,看注释应该知道了吧,参考一下: 

#define CFG_FLASH_ERASE_TOUT   4120000  /* Timeout for Flash Erase (in ms)       */ 

#define CFG_FLASH_WRITE_TOUT  4000       /* Timeout for Flash Write (in ms)       */ 







按着来一步步的做应该不难,这里提一下vi程序的用法,其实在google一搜就找到了,不过为了方便大家,还是说一声吧, 

在命令模式下: 

按/ xxx再回车即可搜索到你所需要的内容(xxx),再按n搜索下一个,按shift+n搜索上一个 

按:xxx即可跟到你想要的行 

按:set nu显示行号 

其它查书都可以找到就不说了。 




做到这个时候,你可以再编译一下,看有没有错,这一步我就没有帮你们做了,不过我觉得应该不会有问题吧,下载到ram中运行,看看效果。 

u-boot移植日记4(新手必读)


7)终于到了flash的设置部分了,这完全是我个人悟出来的,网上资料好像讲得不是先清楚。 

  首先介绍一下flash的识别吧,每块flash都有一个id,前部分用来说明生产厂家,后部分用来说明它的容量,类型,位数等。它们的定义是在u-boot-1.1.2/include/flash.h中,就以我的ssts9vf1601为例: 

#define SST_MANUFACT    0x00BF00BF  这是生产厂家id 

#define SST_ID_xF1601       0x234B234B  这是它的型号,容量,位数等id 

#define FLASH_SST160A     0x0046       这个我还说不清楚,有个要注意的问题是像sst160是不能用奇地址的,我做的过程中是把SST160A改成SST1601的,懒得帮它创一个 

好了,相信你已经找到你的板上所用的flash对应的id号了吧?现在就来谈谈怎么改。 

先进入u-boot-1.1.2/board/myboards3c44b0/common/flash.c 

它里面已经帮SST160A设置好了,我的做法是把SST公司的160A都改成1601,是不是很简单,当然你也可以帮1601再写一分,但是我是个懒人,所以我就样做了^_^ 




到这里还有个问题没提到的,就是如果你重新用setenv saveenv 设置了参数,但是复位后会发现怎么没有保存到的(不信你试试看)。其实我是故意留到这里讲的,应该它不会报错,可以说是比较隐秘的问题,所以我故意放到这里来说,以引起你的重视。 



解决方法:vi u-boot-1.1.2/board/myboard/common/flash.c 

找到这个函数:write_buff 

里面有这句话:#ifdef CONFIG_B2 

要把B2改了,因为我们的板不叫B2,那叫什么呢?原来是在这里定义的:u-boot-1.1.2/include/configs/myboards3c44b0.h 

里面有这句话:#define CONFIG_HFRK 你不喜欢HFRK这个名字也行,可以改成别的名字,只不过相应地前面的B2也要改成这个名字而已。 







4.后记: 



   本来是想刚做好的时候写的,但是后来发现有些功能实现不了,所以就停住了笔,等我搞好了以后,又急着去学习uClinux的移植,真的很忙,现在终于抽空把它写完。虽然有些地方还没说清楚(毕竟我对它的了解还不是很深,但我相信在我以后移植系统的过程中会逐步加深对它的了解),我还是希望它能成为最详尽的u-boot移植新手指导,对u-boot移植的初学者起到实质性的作用,这样就不枉我花了这么多的心思来写这个文档。 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -