QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2029|回复: 3

关于sjf4510源程序的一些问题?

[复制链接]
发表于 2005-7-23 16:25:26 | 显示全部楼层 |阅读模式
我在看陈猛写的sjf4510源程序时,有些问题不明白,请斑竹和高手指点:
(1)pin4510.h中

#define S4510_MAX_CELL_INDEX        233        //the number of internal pads

//DATA BUS
#define DATA0_31_CON (127)                        //1-input, 0-output

#define DATA0_IN        (126)
#define DATA0_OUT        (125)
#define DATA1_IN        (124)
#define DATA1_OUT        (123)
#define DATA2_IN        (122)  
#define DATA2_OUT        (121)
#define DATA3_IN        (120)  
#define DATA3_OUT        (119)
#define DATA4_IN        (11  
#define DATA4_OUT        (117)
#define DATA5_IN        (116)  
#define DATA5_OUT        (115)
#define DATA6_IN        (114)  
#define DATA6_OUT        (113)
#define DATA7_IN        (112)  
#define DATA7_OUT        (111)
#define DATA8_IN        (110)
#define DATA8_OUT        (109)
#define DATA9_IN        (10
#define DATA9_OUT        (107)
#define DATA10_IN        (106)  
#define DATA10_OUT        (105)
#define DATA11_IN        (104)  
#define DATA11_OUT        (103)
#define DATA12_IN        (102)  
#define DATA12_OUT        (101)
#define DATA13_IN        (100)  
#define DATA13_OUT        (99)
#define DATA14_IN        (9  
#define DATA14_OUT        (97)
#define DATA15_IN        (96)  
#define DATA15_OUT        (95)
#define DATA16_IN        (94)
#define DATA16_OUT        (93)
#define DATA17_IN        (92)
#define DATA17_OUT        (91)
#define DATA18_IN        (90)
#define DATA18_OUT        (89)
#define DATA19_IN        (8
#define DATA19_OUT        (87)
#define DATA20_IN        (86)  
#define DATA20_OUT        (85)
#define DATA21_IN        (84)
#define DATA21_OUT        (83)
#define DATA22_IN        (82)
#define DATA22_OUT        (81)
#define DATA23_IN        (80)  
#define DATA23_OUT        (79)
#define DATA24_IN        (7
#define DATA24_OUT        (77)  
#define DATA25_IN        (76)
#define DATA25_OUT        (75)
#define DATA26_IN        (74)  
#define DATA26_OUT        (73)
#define DATA27_IN        (72)  
#define DATA27_OUT        (71)
#define DATA28_IN        (70)
#define DATA28_OUT        (69)
#define DATA29_IN        (6  
#define DATA29_OUT        (67)
#define DATA30_IN        (66)
#define DATA30_OUT        (65)
#define DATA31_IN        (64)  
#define DATA31_OUT        (63)

//ADDR BUS & CONTROL LINE
#define ADDR_CS_RW_CON (184)        //sbz for output

#define ADDR0            (149)
#define ADDR1            (14
#define ADDR2            (147)
#define ADDR3            (146)
#define ADDR4            (145)
#define ADDR5            (144)
#define ADDR6            (143)
#define ADDR7            (142)
#define ADDR8            (141)
#define ADDR9            (140)
#define ADDR10            (139)
#define ADDR11            (13
#define ADDR12            (137)
#define ADDR13            (136)
#define ADDR14            (135)
#define ADDR15            (134)
#define ADDR16                (133)
#define ADDR17                (132)
#define ADDR18                (131)
#define ADDR19                (130)
#define ADDR20                (129)
#define ADDR21                (12

//CONTROL LINE
#define nOE                        (17
#define nECS0                (183)
#define nECS1                (182)
#define nECS2                (181)
#define nECS3                (180)

#define nRCS0       (175)
#define nRCS1       (169)
#define nRCS2       (168)
#define nRCS3       (167)
#define nRCS4       (166)
#define nRCS5       (165)

#define nRAS0       (164)
#define nRAS1                (163)
#define nRAS2                (162)
#define nRAS3                (161)
#define nCAS0                (160)
#define nCAS1                (159)
#define nCAS2                (158)
#define nCAS3                (157)
#define nDWE                (156)
#define nWBE0                (155)
#define nWBE1                (154)
#define nWBE2                (153)
#define nWBE3                (152)

#define PP7_CON                (39)
#define PP7_IN                (41)
#define PP7_OUT                (40)

#define PP6_CON                (42)
#define PP6_IN                (44)
#define PP6_OUT                (43)

#define PP5_CON                (45)
#define PP5_IN                (47)
#define PP5_OUT                (46)

#define PP4_CON                (48)
#define PP4_IN                (50)
#define PP4_OUT                (49)

#define PP3_CON                (51)
#define PP3_IN                (53)
#define PP3_OUT                (52)

#define PP2_CON                (54)
#define PP2_IN                (56)
#define PP2_OUT                (55)

#define PP1_CON                (57)
#define PP1_IN                (59)
#define PP1_OUT                (58)

#define PP0_CON                (60)
#define PP0_IN                (62)
#define PP0_OUT                (61)
这些定义是怎么来的??
(2)39vf160.c中
void NOR_WrHW(U32 addr,U16 data)
{
    S4510_SetPin(DATA0_31_CON ,LOW);
    S4510_SetAddr(addr);
    S4510_Assert_nGCS(addr);

    S4510_SetDataHW(data);
    JTAG_ShiftDRStateNoTdo(outCellValue); //tCOS

    S4510_SetPin(nWBE0,LOW);
    JTAG_ShiftDRStateNoTdo(outCellValue);

    S4510_SetPin(nWBE0,HIGH);
    JTAG_ShiftDRStateNoTdo(outCellValue); //tCOH

    S4510_SetPin(DATA0_31_CON ,HIGH); //nBE is deasserted here.

    S4510_Deassert_nGCS(addr);
    JTAG_ShiftDRStateNoTdo(outCellValue);
}

short NOR_RdHW(U32 addr)
{
        S4510_SetPin(DATA0_31_CON ,HIGH);

    S4510_SetAddr(addr);
    S4510_Assert_nGCS(addr);
    S4510_SetPin(nOE,LOW);

    JTAG_ShiftDRStateNoTdo(outCellValue);
   
    S4510_SetPin(nOE,HIGH);
    S4510_Deassert_nGCS(addr);

    JTAG_ShiftDRState(outCellValue,inCellValue);
    return S4510_GetDataHW();
}
我不明白如何通过jtag把指令发送到lumit4510中执行??
(3)在看lumit4510v1.4电路图中,其中画的关于Nor Flash和我拿到的开发板的实物不一样,而我的开发板实物和DIY手册是一样的,请斑竹能否解释一下?
谢谢!!
注:附件是源程序!!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
发表于 2005-7-25 10:37:59 | 显示全部楼层
关于 jtag 烧写 Flash 方面的源码分析和原理说明, SkyEye 的那本书第八章里有我写的一个小节专门讨论这个问题的。可以找来看一下。  :-)

你拿到的开发板的实物 NorFlash 是什么样的,和原理图里画的有何不同? 可以描述一下吗?
回复

使用道具 举报

 楼主| 发表于 2005-7-25 21:08:02 | 显示全部楼层
谢谢斑竹!
我看了你写的第8章关于Jflash程序相关接口分析部分内容,并从网上下载了源程序。此外在www.lumit.org网站上下载了s3c4510的bsdl文件。这样对照着看就容易多了!
关于开发板的实物 NorFlash 是SST39VF1601,而原理图上画的是SST39VF320。
此外,还有一些细微差别。开发板的NorFlash实物和DIY手册描述一致,实物如下:
U1:SST39VF160
U4:74HC08
CM1,CM18,CM33
而原理图中有数十个电容。请斑竹查阅!!
回复

使用道具 举报

发表于 2005-7-26 11:22:40 | 显示全部楼层
嗯, S3C4510 这个芯片据说是快要停产了,不用深究技术细节,大致能看懂逻辑意义就够了。
160 和 320 的差别是存储容量,原理图上应该都可以兼用。
电容是硬件问题啦,我不太懂,不过据 zhaoic 告诉我,电容少几个没什么关系的   
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-22 00:51 , Processed in 0.057343 second(s), 17 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表