-
可以实现,通过STVP烧写DATA MEMORY
-
顶
-
103K的I2C是按标准I2C去操作,没有特别之处。
-
看看ST的一篇AN会有帮助:
AN2668 Improving STM32F101xx and STM32F103xx ADC resolution by oversampling
-
学习中
-
搞定.......
-
Mark!!!!!
-
那就证明已经有锁加在上面了。
-
参考这个打开串口方法:
HANDLE hComm=CreateFile(
_T("COM1:"),
GENERIC_READ|GENERIC_WRITE,
0,
NULL,
OPEN_EXISTING,
0,
NULL
);
复制代码
-
Veabol兄弟你是什么硬件平台?我一直怀疑我的USB Fuction驱动有问题,就是现在不知道从哪里下手改
-
我们做的每个产品都有开机Logo,甚至产品序列号、PCB版本号等等。都是以二进制形式存储在Nand Flash中的,至于存在哪里?怎么写入?怎么读?你自己完全可以在代码中自己控制啊!
关于你的问题,看我的解答:
1、在image_cfg中有以下配置:
#define DRAM_BASE_PA_START (0x50000000) //DRAM物理起始地址?
#define DRAM_BASE_CA_START (0x80000000) //
#define DRAM_BASE_UA_START (0xA0000000) //DRAM经过MMU映射后的虚拟起始地址?
后面的注释是我加的,请问加的是否正确?0x80000000是什么地址?难道是DMA缓存地址?这个问题很菜,哈哈
注释基本都是对的,第一行是DRAM的物理地址,第二行是经过MMU映射之后的虚拟地址,第三行是在虚拟地址的基础上增加了Cache(即缓存)后的地址。和DMA没什么关系,这些地址你在MMU映射转换表中应该能看得到的。
2、在使用SD卡进行烧写EBOOT.bin时,提示地址是:
ImageStart = 0x80030000, ImageLength = 0x42F38, LaunchAddr = 0x80066D64
这个0x80030000肯定不是NandFlash物理地址,问题就是什么时候将EBOOT.bin的内容写到了NandFlash里?写到了什么地方?谁干的?
因为在烧写NK.bin的时候,提示地址是:mageStart = 0x80100000, ImageLength = 0x1F3C49C, LaunchAddr =
0x801076EC,在写完后要等待一段时间(1分钟?)系统才能自启动,这一分钟肯定是将先写到0x80030000(到底是DRAM还
是缓存)中NK.bin解析到NandFlash中,同样我也不知道烧到了NandFlash的什么地方?
EBoot的ImageStart=0x80030000是指Eboot运行时在DRAM中的地址,这是在Build Eboot时在Eboot.bib中指定的。后面的LaunchAddr是指Eboot运行起来时真正执行代码的地方,因为Paltform Builder做出来的Eboot.bin中,前面有一段头的,最开始是跳转指令,后面一部分是空的,真正的代码在后面偏移0x76EC的地方。至于将Eboot.bin烧到了什么地方,这里是看不出来的,要看你的具体代码。
同理,NK.bin显示的ImageStart=0x80100000也是指NK将来在DRAM中运行时的地址。LaunchAddr也是跳转过去真正执行的代码的位置。NK.bin烧的位置也要看你代码
-
1. DMA, 就是不透过 CPU 的 Core 做存取, 故其与 cache 是无关的, 但是在程式准备资料填入 dma 的 buffer 或是从 dma buffer 搬出时, 就与 cache 有关了.
2. LZ 可将得到的 physical address 再透过 VirtualAlloc/VirtualCopy 或是 MmMapIoSpace 等 API 即可获得 cached virtual address.
Paul, Chao @ Techware
-
搞定之后我会给大伙做个汇报:)
-
学习,帮顶
-
不行啊
-
都不是呀,是BSP的库,没有源码的确良
-
不知道。。。
不过帮顶一下。
-
是设置成FLASH中调试的.
-
有啊,官方软件支持。
不过这个不是很方便,因为一旦进入Application,就无法再进ISP了,除非修改OptionByte设定。
-
学习学习,呵呵