-
里面什么都没有啊
-
13楼的bootloader等于没说,能写bootloader,我直接写程序不就完了
-
呵呵,我也是在搜索 STM32 的SPI 有没有 类似于TIMEOUT 这个功能时看到这个帖子的。
STM32的SPI似乎是真的没有 TO 这个功能, 在SPI_SLAVE 接受不定长或未知长度数据时, 有点麻烦。
而看到ATMEL的ARM 中的SPI, 当你看到NSSR 这个中断功能时。你应该会感叹吧,ATMEL干的不错。
-
2楼正确,还有就是最好优化等级设为不优化以便调试观察变量
-
30天免费一般是从官网下载的日期算, 就算谁电脑有,也不能用了。
-
网上搜了下,说是可能:
This system bugchecked when the critical process csrss.exe failed an I/O operation due to insufficient non-paged pool.
我查看了下,申请的非分页都释放了。
BugCheck F4, {3, 89a64548, 89a646bc, 805d220a}
一些分析如下:
1: kd> u 89a64548
89a64548 0300 add eax,dword ptr [eax]
89a6454a 1b00 sbb eax,dword ptr [eax]
89a6454c 0000 add byte ptr [eax],al
89a6454e 0000 add byte ptr [eax],al
89a64550 90 nop
89a64551 30a2899030a2 xor byte ptr [edx-5DCF6F77h],ah
89a64557 895845 mov dword ptr [eax+45h],ebx
89a6455a a6 cmps byte ptr [esi],byte ptr es:[edi]
1: kd> u 89a646bc
89a646bc 637372 arpl word ptr [ebx+72h],si
89a646bf 7373 jae 89a64734
89a646c1 2e ???
89a646c2 657865 js 89a6472a
89a646c5 0000 add byte ptr [eax],al
89a646c7 0000 add byte ptr [eax],al
89a646c9 0000 add byte ptr [eax],al
89a646cb 0000 add byte ptr [eax],al
1: kd> dt _EXCEPTION_RECORD 89a646bc
nt!_EXCEPTION_RECORD
+0x000 ExceptionCode : 1936880483
+0x004 ExceptionFlags : 0x78652e73
+0x008 ExceptionRecord : 0x00000065 _EXCEPTION_RECORD
+0x00c ExceptionAddress : (null)
+0x010 NumberParameters : 0
+0x014 ExceptionInformation : [15] 0
1: kd> dt _EXCEPTION_RECORD 89a64548
nt!_EXCEPTION_RECORD
+0x000 ExceptionCode : 1769475
+0x004 ExceptionFlags : 0
+0x008 ExceptionRecord : 0x89a23090 _EXCEPTION_RECORD
+0x00c ExceptionAddress : 0x89a23090
+0x010 NumberParameters : 0x89a64558
+0x014 ExceptionInformation : [15] 0x89a64558
1: kd> dt _CONTEXT 805d220a
nt!_CONTEXT
+0x000 ContextFlags : 0x6d726554
+0x004 Dr0 : 0x74616e69
+0x008 Dr1 : 0x20676e69
+0x00c Dr2 : 0x74697263
+0x010 Dr3 : 0x6c616369
+0x014 Dr6 : 0x6f727020
+0x018 Dr7 : 0x73736563
+0x01c FloatSave : _FLOATING_SAVE_AREA
+0x08c SegGs : 0x248
+0x090 SegFs : 0x200140f6
+0x094 SegEs : 0x74084589
+0x098 SegDs : 0x74868d12
+0x09c Edi : 0x50000001
+0x0a0 Esi : 0x220a6856
+0x0a4 Ebx : 0x87e8805d
+0x0a8 Edx : 0x8dfffff0
+0x0ac Ecx : 0x808e
+0x0b0 Eax : 0xf44d8900
+0x0b4 Ebp : 0x3994be8
+0x0b8 Eip : 0x75c08400
+0x0bc SegCs : 0xe8ce8b11
+0x0c0 EFlags : 0xfff546b8
+0x0c4 Esp : 0x10ab8
+0x0c8 SegSs : 0xa4e9c0
+0x0cc ExtendedRegisters : [512] ""
大侠们帮看看。
-
引用 11 楼 mooncmy 的回复:
最近在网上又看到RAS函数不能修改硬件设置,如波特率、串口、数据位、停止位等,
IAPI函数可以实现,不知道那位使用过,介绍一下
应该是TAPI吧,我大概了看了下这个东西,比较复杂,没有空研究了,进度逼人。楼主研究吧,有了结果分享一下
-
错误的例子:
/* Variables' number */
#define NumbOfVar ((uint8_t)0x05)
uint16_t VirtAddVarTab[NumbOfVar] = {0, 1, 2};
//NumbOfVar定义的比用的多实际是{0, 1, 2, 0, 0},虚拟地址0的数据换页后将出现旧数据覆盖最新数据
int main(void)
{
uint16_t temp;
for (VarValue = 0; VarValue < 100; VarValue++)
{
EE_WriteVariable(VirtAddVarTab[0], VarValue+10);
}
for (VarValue = 0; VarValue < 500; VarValue++)
{
EE_WriteVariable(VirtAddVarTab[1], VarValue);
temp=0;
EE_ReadVariable(0, &temp);//不换页读出数据是对的,换页后读出数据错误
}
}
//====================================================================================
/* Variables' number */
#define NumbOfVar ((uint8_t)0x03)
uint16_t VirtAddVarTab[NumbOfVar] = {0, 1, 2};
//NumbOfVar定义为3,下面用到虚拟地址超过VirtAddVarTab表里面的值
int main(void)
{
uint16_t temp;
for (VarValue = 0; VarValue < 100; VarValue++)
{
EE_WriteVariable(VirtAddVarTab[0], VarValue);
}
for (VarValue = 0; VarValue < 50; VarValue++)
{
EE_WriteVariable(3, VarValue+2);
}
for (VarValue = 0; VarValue < 200; VarValue++)
{
EE_WriteVariable(2, VarValue);
temp=0;
EE_ReadVariable(3, &temp);//不换页读出数据是对的,换页后读出数据错误
}
}
-
WolfMvP:( 你才是猪呢
-
楼主也没说你的问题是什么啊?直接粘个程序上来让别人看吗?
调试AD时要注意参考电压是否接好了,我用AVR的AD时也出现过问题,好像都是参考电压没弄好。
还有就是我以前用ICCAVR,无论如何改程序,编译下载后现象就是不变,没办法,只能另建一个工程就OK了,也不知道为什么。。。。
-
LZ介绍详细一下
-
有原理图么?程序太多,我写程序是按原理图写的。
-
已经有那么多勇士牺牲在前面了,楼主怎么还用stm32的rtc啊
-
nk.nb0的有效大小是0x2DAA3B0,与NK.bin的大小没有什么可比性的。
-
和STRCPY 类似的函数时间已经达到极限,就是在cpu时钟频率下搬运数据,不可能再快,除非提高主频,再者dma不能提高速率,只是cpu不用参与传输而已。
-
楼上正确,-15的补码 就是 10001
最高位是符号位,负数的符号位是1
原码:11111 -》 反码 10000 -》 补码 10001
-
它说向MC_RCR寄存器的RCB位写1,就启用了REMAP指令,可以在地址0访问内部的SRAM. 再向MC_RCR的RCB位写1,又会恢复到初始状态.
如果你要用这个功能,把你的代码复制到SDRAM,把中断向量复制到内部SRAM,然后发出一个REMAP指令就可以了. 你要知道怎样配置LINKER来产生正确的代码. 新手的话,建议不要弄这么复杂的东西,就让你的代码在FLASH里面跑好了.
刚才弄错了~~~~晕...连续错
-
mount -t nfs -o nolock 196.168.0.110:/home/name/rootfs /mnt/nfs
你这句话命令没有输全,挂到哪里去了呢
-
禁止那个问题解决了,只要把DM9CE1在PB里把注册表包含去掉或者禁止就可以了,另外也可以改成DHCP为1,这样都可以实现,前者呢,欢迎大家指正。
-
先拿示波器看下数据是不是真的没发出,波特率什么的都对不对。
再然后也就只好找个仿真器来看看了。