一、在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只是型号更换,所以不必更改参数;

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

转载:http://bbs.21ic.com/blog-627217-117376.html

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

  1. JNI开发笔记(三)--JNI工程的框架分析

    JNI工程的框架分析 引 1. JNI工程的组成部分 2. 各个部分之间的关系 引 JNI开发笔记(一)–Android Studio安装与环境搭建 JNI开发笔记(二)–创建JNI基础工程并运行 1 ...

  2. [Flash开发笔记] 如何在as2.0中使用自定义类事件

    as2编程中,我们通常要处理一些异步加载的数据,有点类似ajax中的callback,即我们不知道何时数据才会返回,并且只有当数据返回时,执行我们定义的操作.     在flash6及以前,我们会常常 ...

  3. JNI开发笔记(八)--Java读取txt文件进行JNI测试

    Java读取txt文件进行JNI测试 引 前言 1. 新建assets文件夹 2. 载入测试文件 3. 建立文件读取方法 4. 在MainActivity中读取文件数据 引 JNI开发笔记(一)–An ...

  4. JNI开发笔记(五)--JNI语法总结

    JNI语法总结 引 前言 1. 传参类型为变量/变量指针 1.1 变量 1.2 变量指针 2. 传参类型为数组指针 3. 传参类型为结构体指针 引 JNI开发笔记(一)–Android Studio安 ...

  5. JNI开发笔记(七)--aar库的生成和调用

    aar库的生成和调用 引 前言 1. 新建一个空工程 2. 新建一个Module 3. 移植JNI工程到Module中 4. 生成aar库与so库 5. 在另一个工程中调用aar库 引 JNI开发笔记 ...

  6. JNI开发笔记(六)--一种更规范的so库生成方法

    一种更规范的JNI工程写法 引 前言 1. MainActivity中的两个重要的语句 2. 建立Util类来替代MainActivity 3. 在MainActivity中验证JNI工程并生成so库 ...

  7. JNI开发笔记(四)--实现一个简单的JNI工程并生成so库

    实现一个简单的JNI工程并生成so库 引 前言 1. 编写C/h文件并添加到工程 2. 修改CmakeLists.txt文件 3. 编写native-lib.cpp文件 4. 在MainActivit ...

  8. Android开发笔记(一百六十七)Android8.0的画中画模式

    前面的博文< Android开发笔记(一百五十九)Android7.0的分屏模式>介绍了Android7.0的多窗口特性,但是这个分屏的区域是固定的,要么在屏幕的上半部分,要么在屏幕的下半 ...

  9. Android开发笔记(一百五十九)Android7.0的分屏模式

    现在的手机屏幕越来越大,使得在屏幕上同时开多个窗口不再奢侈,因此Android从7.0开始顺势推出了分屏功能,也被称作多窗口模式.比如把竖长的手机屏幕分成上下两个窗口,一边在上面的窗口中观看电影,一边 ...

最新文章

  1. 我提出辞职,老板竟然让我做选择题(转)
  2. 没钱还装逼,买二手车的都是什么人?
  3. 曙光服务器2008系统,在中科曙光I620-G20服務器上安裝Windows 2008 R2 系統步驟
  4. Hadoop和Spark生态圈了解
  5. 【开源项目】基于C++使用ffmpeg和QT开发播放器
  6. 程序员躲不掉的“中年危机”
  7. 曙光天阔服务器文档,曙光天阔服务器远程控制手册(附件).doc
  8. 主从同步redis和mysql的区别_mysql主从复制、redis基础、持久化和主从复制
  9. 王者荣耀钓鱼网源码php,王者荣耀钓鱼页面
  10. 数分下第5讲(8.3节) 二次曲面方程和曲线方程
  11. 计算机二级真题期刊论文模板,最新一般期刊论文格式
  12. html5自动换行,html5文字自动换行怎么设置
  13. 【每日新闻早报】9月17日 星期二
  14. k8s基本概念及使用
  15. bzoj 4816 [Sdoi2017]数字表格——反演
  16. JS实现数字自动转换人民币金额(自动格式化输入的数字/千位分隔符)
  17. html 发言样式,HTML样式
  18. Ubuntu快捷键——终端
  19. 音乐研发必备:理解 MIDI 协议与标准 MIDI 文件格式
  20. Matlab使用regress函数进行回归分析

热门文章

  1. 无法启动调试 绑定句柄无效
  2. Julia配置【使用VScode中的Jupyter编写Julia的方法】
  3. MVC区域areas添加出现错误,生成空文件夹问题
  4. 物业消防安全知识培训PPT模板
  5. 【RDMA】infiniband网卡安装|InfiniBand 连接和状态诊断工具|测试RDMA网卡是否正常工作...
  6. 华为2017 校园招聘
  7. 这可能是用 Markdown 写微信公众号的终极解决方案
  8. Mysql的深入浅出
  9. JAVA中int 是什么意思,java中int和Integer什么区别
  10. openlayers实现属性查询