IPNC_RDK_4.1分析

IPNC开发笔记——关于IPNC_RDK_4.1.0的分析

已有 231 次阅读2014-2-27 11:55|系统分类:嵌入式系统|应用程序,配置文件, flash, 存储器, 客户端

转自:精工小匠

一、在IPNC_RDK_4.1.0中的开发包,主要分两大部分:dvsdk_ipnctools、ipnc_appipnc_rdk;


dvsdk_ipnctools是ti官方提供的各种ipnc开发下的驱动程序、dsp算法、psp开发包等;


ipnc_appipnc_rdk主要是appro公司开发的IPNC的应用程序;


所以,单纯的按照appro给的开发demo做出来的IPNC
的硬件直接就可以灌IPNC_RDK_4.1.0中的医用程序,不需要任何改动即可运行起来,并且可以在pc客户端用web
gui的形式访问到ipnc的实时监控画面,并且有附带的控制功能。


而,本次开发的IPNC 的硬件与appro给出的demo硬件方案大不相同;


1.串口选用UART0;


2.nand在DM368的主芯片下选用的是NAND512的小页的nand flash 作为存储器;


3.网口的芯片采用RTL8201的PHY 方案;


4.内存芯片选用HYNY的DDR2-800的存储芯片;


所以需要修改的地方:


a.首先,串口的UART0作为输出调试串口,这样在u-boot、kenerl中的头文件,配置文件都要修改为uart0的串口;


具体位置u-boot中incllude/configs/davinci_dm368_ipnc.h 中的#define
CONFIG_CONS_INDEX   2 修改为#define CONFIG_CONS_INDEX   1 即可,注意#define
CFG_NS16550_CLK     24000000时钟平率一并修改,否则将出现串口输出乱码;


kernel中的位置为/arch/arm/mach-davinci/board-dm368-ipnc.c  
中的修改,也可以在u-boot中的传递参数中添加ttyS0即可;


b.要修改在DM368为主芯片下的nand flash为小页的mlc存储器;


要在定义DM365的宏的nand.c的文件中添加DM368的宏即可驱动小页的nand flash,此处是在u-boot中修改;


在内核中要修改#define NAND_BLOCK_SIZE     SZ_16K 为小页的块容量为16K
的即可,还有根据小页的内存量要修改linux系统下的nand flash分区问题;此处分区为


80 static struct mtd_partition davinci_nand_partitions[] = {
81     
{
82         /* UBL (a few copies) plus U-Boot */
83         .name      
= 'bootloader',
84         .offset     = 0,
85         .size       = 32
* NAND_BLOCK_SIZE,             //24    change by yecx
86         .mask_flags
= 0,
87     }, {
88         /* U-Boot environment */
89         
.name       = 'params',
90         .offset     =
MTDPART_OFS_APPEND,
91         .size       = 96 *
NAND_BLOCK_SIZE,
92         .mask_flags = 0,
93     }, {
94         
.name       = 'kernel',
95         .offset     =
MTDPART_OFS_APPEND,
96             .size       = SZ_2M +
SZ_2M,
97         .mask_flags = 0,
98
99     }, {
100         
.name       = 'filesystem1',
101         .offset     =
MTDPART_OFS_APPEND,
102         .size       = SZ_16M + SZ_8M
,                  //16    change by yecx
103         .mask_flags =
0,
104     }, {
105         .name       = 'data1',
106         
.offset     = MTDPART_OFS_APPEND,
107         .size       =
SZ_2M,
108         .mask_flags = 0,
109     },{
110                 
.name           = 'filesystem2',
111                 .offset         =
MTDPART_OFS_APPEND,
112                 .size           =  SZ_16M + SZ_8M
,         //SZ_32M + SZ_8M  change     by yecx
113                 
.mask_flags     = 0,
114         },
115     {
116                 
.name           = 'data2',
117                 .offset         =
MTDPART_OFS_APPEND,
118                 .size           =
MTDPART_SIZ_FULL,
119                 .mask_flags     = 0,
120         },


此处为修改的nand flash的移植;


c.修改网口芯片PHY的移植;


在u-boot中的为修改PHY的物理地址位PHY_NUM = 0X1F
,并且在u-boot中要添加以下代码,来控制PHY的复位脚,具体在文件board/davinci/dm368_ipnc/dm368_board.c
的函数中int misc_init_r (void)添加;


111     REG(0x01c40008) |= 0x00001000;
112     REG(0x01c67038) &=  
0xfffbffff;
113
114     for( i=0 ; i<20 ; i++)
115     
{
116         REG(0x01c6703C) &= 0xfffbffff;
117         
udelay(1000);
118         REG(0x01c6703C) |= 0x00040000;
119     }


d.DDR2中的主要是时间参数,对于DDR2-800只是型号更换,所以不必更改参数;


以上为必须修改项,还有一些在编译过程中需要注意的项目,无需赘述了。

你可能感兴趣的:(IPNC_RDK_4.1分析)