-
查了下手册,PB5的复用功能是OPT2选项字节管理的,位于0x4803,默认值是00,意味着PB5默认状态是做普通IO的,我没修改过该选项字节,所以应该默认为普通IO的,我怕是不是不小心在哪修改了该值,就读了下,还是00,也就是说跟选项自己是没有关系的
-
可以比拼一下
-
看不懂楼主的问题,
-
引用 47 楼 liaifeilove 的回复:
倒,大家都不要误导新人啊!
其实很多时候不是你选择学什么,而是公司或者环境在决定你需要掌握什么。
你唯一需要努力的就是:怎么做好自己的工作。
对,我们公司就大力发展wince和windows mobile,还想招聘几个人来做mobile系统,呵呵。
-
没看过DS12b887的资料,假如DS12b887的时间信息存储在线性的存储器上,你所说的方案,可以实现的。不过,各个信号的有效电平你要看看。比如读写是什么电平有效,与单片机 xdata操作外sram的电平时序是否一致。不过还有一点就肯定要添加的,就是每次读写前,你都要使能CS,控制下P2的那几个口,让154选择DS12b887。
-
先谢谢了!
是的!如果这种情况该如何释放内存呢!把IRQL降低到PASSIVE_LEVEL级别么?但是我看到passthru等等,他们在释放的时候,都没有降低级别这一说啊!那该如何操作呢?
-
引用 10 楼 yunnanhan 的回复:
引用 9 楼 pcvvv 的回复:
2 电路没学好啊
有个功率因数,无功会回到电源处,但也会在电路(电阻)上消耗的
如果消耗在了电阻上,那还叫无功吗?
这个看什么设备,比如烧水的、煮饭等等设备,靠的就是电阻发热,来实现一些特定功能,
此时消耗在其特定电阻上的能量,就是有用功
-
看样子有两个pool,你的文件是只读的还是可读写的?
-
不使用控件就可以,直接用DC画,画的时候用两张图片像素叠加
-
找个K9F1G08的nand驱动就可以了。
修改的话也不难,看看datasheet,读写都按2048来就好了
-
二楼解答不错。
0~3mA => -2.4 ~ 2.4 +> 0 ~ 4.8V => 1mA -> 1.6V
1mA -> 1.6V can by designed.
-
以下是成功的打印信息,不过几乎要加载全部的镜像大小:
OpenPartition: Partition Exists=0x1 for part 0x21.
BP_SetDataPointer at 0x0
ReadData: Start = 0x0, Length = 0xd0000a.
Log2Phys: Logical 0x500 -> Physical 0xa00
Windows CE Kernel for ARM (Thumb Enabled) Built on Feb 8 2007 at 23:36:51
ProcessorType=0920 Revision=0
sp_abt=ffff5000 sp_irq=ffff2800 sp_undef=ffffc800 OEMAddressTable = 8c2013e0
Windows CE Firmware Init
INFO: Initializing system interrupts...
INFO: Initializing system clock(s)...
INFO: Initializing driver globals area...
SDMMC config set rGPGCON: 20504
pdwXIPLoc = 0x8c33f000
pdwCurXIP = 0x8c33f000
dwNumXIPs = 0x2
pChainEntry = 0x8c33f004
XIP (8c200000 -> 8c372ed4) span
XIP (8c200000 -> 8c372ed4) span
XIP (8c200000 -> 8c372ed4) span
XIP (8c200000 -> 8c372ed4) span
XIP (8c200000 -> 8c372ed4) span
XIP (8c200000 -> 8c372ed4) span
ppte->dwVA = 0x8c000000
XIP (8c200000 -> 8c372ed4) span
ppte->dwVA = 0x8c000000
XIP (8c380000 -> 8cbba778) span
OEMInit Done...
Sp=ffffc7cc
NandFlash FMD_Init
NandFlash FMD_Init Done
I2S_Ini---
Prescaler:2
384 clock
lpMapFIFOdata[0]1: dwContext = 0xBAK_Init: dwContext = 0x602ed64
BacklightInitialize
BL_PowerOn
!!!!!!!!!!!! BACKLIGHT ON !!!!
BAK: IOCTL_POWER_CAPABILITIES
USB:OhcdPdd_Init
++InitializeOHCI
USB:*pIrq=11, *pioPortBase=0x450000
OHCD: MapIrq2SysIntr(11): 27
OHCD: Memory Object
--InitializeOHCI
USB enable interrutp
在InitRomChain打印信息
void InitRomChain(void)
{
static ROMChain_t s_pNextRom[MAX_ROM] = {0};
DWORD dwRomCount = 0;
DWORD dwChainCount = 0;
DWORD *pdwCurXIP;
DWORD dwNumXIPs;
PPTE ppte;
DWORD dwEnd;
ROMChain_t *pList;
PXIPCHAIN_ENTRY pChainEntry = NULL;
ppte = (PPTE) OEMAddressTable;
if(pdwXIPLoc == NOT_FIXEDUP)
{
return; // no chain or not fixed up properly
}
// lpWriteDebugStringFunc(TEXT("pdwXIPLoc = %x \r\n"));
RETAILMSG(1,(TEXT("pdwXIPLoc = 0x%x \r\n"),pdwXIPLoc));
// set the top bit to mark it as a virtual address
pdwCurXIP = (DWORD*)(((DWORD)pdwXIPLoc) | 0x80000000);
RETAILMSG(1,(TEXT("pdwCurXIP = 0x%x \r\n"),pdwCurXIP));
// first DWORD is number of XIPs
dwNumXIPs = (*pdwCurXIP);
RETAILMSG(1,(TEXT("dwNumXIPs = 0x%x \r\n"),dwNumXIPs));
if(dwNumXIPs > MAX_ROM)
{
lpWriteDebugStringFunc(TEXT("ERROR: Number of XIPs exceeds MAX\n"));
return;
}
pChainEntry = (PXIPCHAIN_ENTRY)(pdwCurXIP + 1);
RETAILMSG(1,(TEXT("pChainEntry = 0x%x \r\n"),pChainEntry));
while(dwChainCount < dwNumXIPs)
{
if ((pChainEntry->usFlags & ROMXIP_OK_TO_LOAD) && // flags indicates valid XIP
*(LPDWORD)(((DWORD)(pChainEntry->pvAddr)) + ROM_SIGNATURE_OFFSET) == ROM_SIGNATURE)
{
s_pNextRom[dwRomCount].pTOC = *(ROMHDR **)(((DWORD)(pChainEntry->pvAddr)) + ROM_SIGNATURE_OFFSET + 4);
s_pNextRom[dwRomCount].pNext = NULL;
if (dwRomCount != 0)
{
s_pNextRom[dwRomCount-1].pNext = &s_pNextRom[dwRomCount];
}
else
{
OEMRomChain = s_pNextRom;
}
dwRomCount++;
}
else
{
lpWriteDebugStringFunc( _T("Invalid XIP found\n") );
}
++pChainEntry;
dwChainCount++;
}
pList = OEMRomChain;
for ( ; pList; pList = pList->pNext)
{
for (; ppte->dwSize; ppte ++)
{
dwEnd = ppte->dwVA + (ppte->dwSize pTOC->physfirst, ppte->dwVA, dwEnd))
{
if (IsInRange (pList->pTOC->physlast, ppte->dwVA, dwEnd))
{
// good XIP, break inner loop and go on to the next region
RETAILMSG(1,(TEXT("ppte->dwVA = 0x%x \r\n"),ppte->dwVA));
RETAILMSG(1,(L"XIP (%8.8lx -> %8.8lx) span\r\n",
pList->pTOC->physfirst, pList->pTOC->physlast));
break;
}
}
RETAILMSG(1,(L"XIP (%8.8lx -> %8.8lx) span\r\n",
pList->pTOC->physfirst, pList->pTOC->physlast));
}
if (!ppte->dwSize)
{
RETAILMSG(1,(TEXT("doesn't exist in OEMAddressTab\r\n")));
}//*/
}
}
-
无论怎么说,C/C++都是主流,C/C++才是真正的系统编程。我建议转到C/C++上来
-
引用 2 楼 kyzf 的回复:
上库房弄个6201 或者6206 就可以弄弄
抱歉,弄错了,发错了消息,请版主删掉。
-
你在读温度时序中有没有被其他程序中断了,比如用了RTOS,或是有频繁的中断程序,我以前在一个系统里想用,因为有RTOS,温度总是跳,后来才知道DS18B20对时序要求十分严格,在读的期间不能被打断,所以后来选择使用其他芯片了。
-
估计没有这样的设置,你到是可以设置各行文本对齐方式,不行就在前面加空格,貌似在中间,嘿嘿
-
其实你的描述真的让人看不明白 ,你把你现在的状态,想要达到的目的,再一条一条说清楚好吗?
不然让人很晕,没办法回答。
-
就是存储数据,掉电后不会丢失
-
To:zwd2009101
我是菜鸟 呵呵
不想去深圳
估计会一直在北京
To:
因为代码别人已经写好了,是在应用层写的。
然后我才开始研究U盘过滤驱动
我前一段一直用srb读取那个用WriteFile写入的标识,一直没读到。
我是菜鸟,一直以为是自己的代码有问题,昨天自己试着用srb写入一个标识,然后用srb去读,能读取到.
才知道自己的代码没问题。耽误了我不少时间。
谁能给我解释一下用WriteFile和用srb写磁盘到底有什么区别?
其中,CreateFile里面的char cFilePath[] = "\\\\.\\H:";之类的。
还有,谁能告诉我磁盘设备连接符是什么?
我在google上没找到
-
确定字符串没有写错
SQLSERVER2005有个外围配置,默认情况只限本地连接,把它改成本地和远程连接试试。