IPNC_RDK_4.1分析
IPNC開發(fā)筆記——關(guān)于IPNC_RDK_4.1.0的分析
||
轉(zhuǎn)自:精工小匠
一、在IPNC_RDK_4.1.0中的開發(fā)包,主要分兩大部分:dvsdk_ipnctools、ipnc_appipnc_rdk;
dvsdk_ipnctools是ti官方提供的各種ipnc開發(fā)下的驅(qū)動(dòng)程序、dsp算法、psp開發(fā)包等;
ipnc_appipnc_rdk主要是appro公司開發(fā)的IPNC的應(yīng)用程序;
所以,單純的按照appro給的開發(fā)demo做出來的IPNC
的硬件直接就可以灌IPNC_RDK_4.1.0中的醫(yī)用程序,不需要任何改動(dòng)即可運(yùn)行起來,并且可以在pc客戶端用web
gui的形式訪問到ipnc的實(shí)時(shí)監(jiān)控畫面,并且有附帶的控制功能。
而,本次開發(fā)的IPNC 的硬件與appro給出的demo硬件方案大不相同;
1.串口選用UART0;
2.nand在DM368的主芯片下選用的是NAND512的小頁的nand flash 作為存儲(chǔ)器;
3.網(wǎng)口的芯片采用RTL8201的PHY 方案;
4.內(nèi)存芯片選用HYNY的DDR2-800的存儲(chǔ)芯片;
所以需要修改的地方:
a.首先,串口的UART0作為輸出調(diào)試串口,這樣在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時(shí)鐘平率一并修改,否則將出現(xiàn)串口輸出亂碼;
kernel中的位置為/arch/arm/mach-davinci/board-dm368-ipnc.c??
中的修改,也可以在u-boot中的傳遞參數(shù)中添加ttyS0即可;
b.要修改在DM368為主芯片下的nand flash為小頁的mlc存儲(chǔ)器;
要在定義DM365的宏的nand.c的文件中添加DM368的宏即可驅(qū)動(dòng)小頁的nand flash,此處是在u-boot中修改;
在內(nèi)核中要修改#define NAND_BLOCK_SIZE? ???SZ_16K 為小頁的塊容量為16K
的即可,還有根據(jù)小頁的內(nèi)存量要修改linux系統(tǒng)下的nand flash分區(qū)問題;此處分區(qū)為
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.修改網(wǎng)口芯片PHY的移植;
在u-boot中的為修改PHY的物理地址位PHY_NUM = 0X1F
,并且在u-boot中要添加以下代碼,來控制PHY的復(fù)位腳,具體在文件board/davinci/dm368_ipnc/dm368_board.c
的函數(shù)中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中的主要是時(shí)間參數(shù),對(duì)于DDR2-800只是型號(hào)更換,所以不必更改參數(shù);
以上為必須修改項(xiàng),還有一些在編譯過程中需要注意的項(xiàng)目,無需贅述了。
總結(jié)
以上是生活随笔為你收集整理的IPNC_RDK_4.1分析的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【财务】财务分析---管理报告体系搭建
- 下一篇: 看穿晾衣架上的“手机人”说起:黑产套路能