-
Page Not Found - 404 Server error
版主,要不你试试?
-
2010年最后一天的心情就像股票一样郁闷,很相信STM32的,仔细看了最新AN2784文档、勘误表等,没发现说103VC不支持Muxed Mode或有什么Bug,
按照AN2784:5.2 Interfacing the FSMC with a NOR Flash memory所述,至少应该支持NOR吧,于是将设置改为:
/*-- FSMC Configuration ----------------------------------------------------
p.FSMC_AddressSetupTime = 2;
p.FSMC_AddressHoldTime = 2;
p.FSMC_DataSetupTime = 6;
p.FSMC_BusTurnAroundDuration = 0;
p.FSMC_CLKDivision = 0;
p.FSMC_DataLatency = 0;
p.FSMC_AccessMode = FSMC_AccessMode_B;
FSMC_NORSRAMInitStructure.FSMC_Bank = FSMC_Bank1_NORSRAM1;
FSMC_NORSRAMInitStructure.FSMC_DataAddressMux = FSMC_DataAddressMux_Enable;
FSMC_NORSRAMInitStructure.FSMC_MemoryType = FSMC_MemoryType_NOR;
FSMC_NORSRAMInitStructure.FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_16b;
FSMC_NORSRAMInitStructure.FSMC_BurstAccessMode = FSMC_BurstAccessMode_Disable;
FSMC_NORSRAMInitStructure.FSMC_AsynchronousWait = FSMC_AsynchronousWait_Disable;
FSMC_NORSRAMInitStructure.FSMC_WaitSignalPolarity = FSMC_WaitSignalPolarity_Low;
FSMC_NORSRAMInitStructure.FSMC_WrapMode = FSMC_WrapMode_Disable;
FSMC_NORSRAMInitStructure.FSMC_WaitSignalActive = FSMC_WaitSignalActive_BeforeWaitState;
FSMC_NORSRAMInitStructure.FSMC_WriteOperation = FSMC_WriteOperation_Enable;
FSMC_NORSRAMInitStructure.FSMC_WaitSignal = FSMC_WaitSignal_Disable;
FSMC_NORSRAMInitStructure.FSMC_ExtendedMode = FSMC_ExtendedMode_Enable; // 必须要使能
FSMC_NORSRAMInitStructure.FSMC_WriteBurst = FSMC_WriteBurst_Disable;
FSMC_NORSRAMInitStructure.FSMC_ReadWriteTimingStruct = &p;
FSMC_NORSRAMInitStructure.FSMC_WriteTimingStruct = &p;
FSMC_NORSRAMInit(&FSMC_NORSRAMInitStructure);
/*!< Enable FSMC Bank1_SRAM Bank */
FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM1, ENABLE);
在主程序中用下面循环测试:
while (1) {
*(uint16_t *) (0x60001234) = 0x5555;
*(uint16_t *) (0x60005678) = 0xAAAA;
val = *(uint16_t *) (0x60005678);
}
理论上说:在AD[0..15]线上应该出现相应的低16位地址和16位数据的!
用示波器观察,只看到数据线上的数据是正确的,出现在nADV为低时的低16位地址却不是循环测试设置的低16位地址值!!!!!!
亲爱的版主啊,怎么看不到你的身影了!ST的技术支持到哪里去找啊!
只看到你强烈建议用103ZE来驱动SRAM/NOR,却没有说个为什么???
难道ST就不认为这是个Bug???
或许是我对设置参数理解不透,但我确实从ST文档上看不明白!!!
-
放学回家了……明天试试
-
我也是对这个嵌入式比较感兴趣,现在,但是现在搞的人多了。现在的资料很丰富,也没有了难度
-
对了 我的邮箱 philip1106@sina.com 谢谢
引用楼主 philip1106 的回复:
microSD的读写命令和SD卡的读写命令应该是一样的对吧,我现在用SPI操作microSD卡有问题
上边是应用的电路
现在如果我上拉MISO 和MOSI的话 读取到的数据都是1 如果不上拉的话,读取到的都是0,现在很郁闷,不知道怎么个情况,是不是卡和坐的接触有问题,可能用的spec有……
-
应该看看数据手册
-
我们用的是PB哈
-
引用 30 楼 veabol 的回复:
你的烧录程序确定是对的吗?是否表面上看程序读写的是15BLOCK,但是由于代码某个地方有误,导致实际上是读写的其它BLOCK呢?
另外,LOADER.H上写的EBOOT 的起始BLOCK是2,BLOCK SIZE是8,那么2..9都应该是EBOOT,你为什么要让LOGO占用呢?虽然目前只到8,但是EBOOT烧录代码上会对SIZE判断的,如果中间出现坏块就会写到9,那你的LOGO也就被清了一部分。……
我的STEPLDR MAIN.C。。。。部分
#define NAND_BLOCK_SIZE_BYTES 0x00020000
#define NAND_PAGE_SIZE_BYTES 0x00000200
#define NAND_PAGES_PER_BLOCK (NAND_BLOCK_SIZE_BYTES / NAND_PAGE_SIZE_BYTES)
// NOTE: we assume that this Steppingstone loader occupies *part* the first (good) NAND flash block. More
// specifically, the loader takes up 4096 bytes (or 8 NAND pages) of the first block. We'll start our image
// copy on the very next page.
#define NAND_COPY_PAGE_OFFSET 2*NAND_PAGES_PER_BLOCK
#define LOAD_ADDRESS_PHYSICAL 0x30038000
#define LOAD_SIZE_BYTES 0x00040000
#define LOAD_SIZE_PAGES (LOAD_SIZE_BYTES / NAND_PAGE_SIZE_BYTES)
// Globals variables.
-
PS:这个程序怎么写?
-
大于16K?free的只能16k最大好像
-
ding
-
1. 内存配置对没有
2. usrKernelInit里面会开中断,看中断有无问题,最好用示波器量下中断信号是否一直在产生中断
3. ?
-
期待详细答案
-
DeviceIoControl所获取的虚拟地址要在应用层用,这是比较麻烦的.
-
USB接口全称叫“通用串行总线”
USB通信也是一根线收,一根线发的串行传输模式,为什么要把它和串口并列来讲呢?USB难道不是串口的一种吗?还是说串口约定俗成的就是指COM口,而不是所有的串行传输口的总称?
菜鸟问题,请指教。
-
想添加.NET Compact Framework支持,你添加.NET Compact Framework 2.0就OK,后面的跟前面的相比是缺少东西,职业+友情帮顶…
-
LZ,说说你的高度环境,如什么模拟器或开发板?
-
如果要用xip模式,这个宏IMGMULTIXIP肯定要设置为1.
CE的帮助文档里面有详细说明,可以参考。
-
ADS编译是有没有一些警告?看看警告都说了什么。
-
ldr r0, =IMAGE_NK_PA_START ; Start address (Physical 0x5010.0000)
ldr r9, =(DRAM_SIZE-IMAGE_NK_OFFSET) ; 127 MB of RAM (1MB + 127MB)
总体功能知道,但是最后几行汇编不是很清楚
ldr r0, =IMAGE_NK_PA_START ; Start address (Physical 0x5010.0000)
ldr r9, =(DRAM_SIZE-IMAGE_NK_OFFSET) ; 127 MB of RAM (1MB + 127MB)
第一句指定了DRAM中OS镜像的起始位置吗,
第二句计算出了总共的DRAM的大小吗
如果我需要在当前基础上扩展DRAM 到 256MB,除了硬件上添加DRAM,在启动代码里怎么修改呢?