-
裸机哪里来的malloc()函数?
-
我有可以在wince5.0上的源码,已经用在产品上,而且还添加了拼音联想,笔画联想以及数字输入等功能,在4.2上应该也可以运行。
-
会有50US停顿时间?
-
可以同时同
-
两种情况,你用示波器测测不就知道实际区别了?
-
我也这样了
-
貌似是传说中的死循环
-
哈哈,楼主基础不错噢,其实一开始最重要的最好找一个怎么说呢,强人多一点的地方去。
-
如果的50%方波
TIMER的OC_TOGGLE模式应该可以满足你的要求
要注意输出脚的初始电平
-
其实我也没有用反汇编的办法来使用过第三方的驱动DLL,只是出于学习的目的看一看部分感兴趣的汇编代码。按你所说的驱动是能加载,只是会有不明原因的异常。这个还真不好说,毕竟是第三方的,可能关联到注册表信息、系统配置什么的。如果你觉得方便,我们可以深入探讨一下。
-
//读写INI文件方法
BOOL CBaseWnd::WriteMyProfileString(const CString strSection, const CString strEntry, const CString strValue, const CString strIniPath)
{
if(strSection == L"" || strEntry == L"" || strValue == L"" || strIniPath == L"")
{
return FALSE;
}
CFile IniFile;
CString strCombine;
TRY
{
if(! IniFile.Open(strIniPath, CFile::modeReadWrite|CFile::modeCreate|CFile::modeNoTruncate))
{
return FALSE;
}
if(IniFile.GetLength() == 0)
{
strCombine = L"[" + strSection + L"]" + L"\r\n"
+ strEntry + L"=" + strValue + L"\r\n";
LPTSTR lpCombine = strCombine.GetBuffer(0);
IniFile.Write(lpCombine, strCombine.GetLength() * 2);
IniFile.Close();
return TRUE;
}
WCHAR *pBuf;
pBuf = new WCHAR[IniFile.GetLength() / 2 + 1];
if(pBuf == NULL)
{
IniFile.Close();
return FALSE;
}
if(IniFile.Read(pBuf, IniFile.GetLength()) != IniFile.GetLength())
{
delete[] pBuf;
IniFile.Close();
return FALSE;
}
pBuf[IniFile.GetLength() / 2] = NULL;
strCombine.GetBuffer(MAX_LEN);
strCombine = pBuf;
delete[] pBuf;
int iIndex1, iIndex2, iIndex3, iIndexT;
iIndex1 = strCombine.Find(L"[" + strSection + L"]\r\n");
if(iIndex1 == -1)
{
strCombine += L"[" + strSection + L"]" + L"\r\n"
+ strEntry + L"=" + strValue + L"\r\n";
LPTSTR lpCombine = strCombine.GetBuffer(0);
IniFile.SetLength(0);
IniFile.SeekToBegin();
IniFile.Write(lpCombine, strCombine.GetLength() * 2);
IniFile.Close();
return TRUE;
}
iIndexT = iIndex1 + 4 + strSection.GetLength();
iIndex2 = strCombine.Find(strEntry + L"=", iIndexT);
if(iIndex2 == -1)
{
strCombine.Insert(iIndexT, strEntry + L"=" + strValue + L"\r\n");
LPTSTR lpCombine = strCombine.GetBuffer(0);
IniFile.SetLength(0);
IniFile.SeekToBegin();
IniFile.Write(lpCombine, strCombine.GetLength() * 2);
IniFile.Close();
return TRUE;
}
else
{
iIndex3 = strCombine.Find(L"\r\n", iIndex2 + 1);
if(iIndex3 == -1)
{
IniFile.Close();
return FALSE;
}
iIndexT = iIndex2 + 1 + strEntry.GetLength();
strCombine.Delete(iIndexT, iIndex3 - iIndexT);
strCombine.Insert(iIndexT, strValue);
LPTSTR lpCombine = strCombine.GetBuffer(0);
IniFile.SetLength(0);
IniFile.SeekToBegin();
IniFile.Write(lpCombine, strCombine.GetLength() * 2);
IniFile.Close();
return TRUE;
}
}
CATCH(CFileException, e)
{
}
END_CATCH
IniFile.Close();
return FALSE;
}
-
不会.
帮顶下。
-
[HKEY_LOCAL_MACHINE\SYSTEM\GDI]
"FontLinkMethods"=dword:1
加上这个就好了。
不需要AddFontResource()。不过这种做法前提是系统启动时能发现ttc的存在。不然就不行。
-
可以用一个横流源替代
-
1、LDR伪指令的形式是“LDR Rn,=expr”。作用是装在一个32bit常数和一个地址到寄存器。
下面举一个例子来说明它的用法。
COUNT EQU 0x56000054
LDR R1,=COUNT
MOV R0,#0
STR R0,[R1]
COUNT是我们定义的一个变量,地址为0x56000054。
LDR R1,=COUNT 是将COUNT这个变量的地址,也就是0x56000054放到R1中。
MOV R0,#0是将立即数0放到R0中。
2、另外还有一个就是ldr伪指令,虽然ldr伪指令和ARM的ldr指令很像,但是作用不太一样。ldr伪指令可以在立即数前加上=,以表示把一个地址写到某寄存器中,比如:
ldr r0, =0x12345678
这样,就把0x12345678这个地址写到r0中了。所以,ldr伪指令和mov是比较相似的。只不过mov指令限制了立即数的长度为8位,也就是不能超过512。而ldr伪指令没有这个限制。如果使用ldr伪指令时,后面跟的立即数没有超过8位,那么在实际汇编的时候该ldr伪指令是被转换为 mov指令的。
-
请再看下2、4、6、8楼的留言,为什么会出现这样的描述,在这个帖子的回复者中,有疑问或者答案不正确的不少
我怀疑2、4、6楼的人是陷入了某个误区。
8楼的测试恰恰证明了SPI不但能达到18MHz,而且还有超频的余量。
10楼与20楼的帖子与主题无关,18楼给出了测试结果,剩下就是我和你的帖子了。
我并没有看到再有其他回复者有疑问或者答案不正确的,请winloop可以指点一下吗?
-
NAND操作中对于坏块的处理要通过软件来实现才行,硬件上不会自动实现的
-
WinCE5.0上不是也有么?为什么要做这个转换?
-
都没有,驱动需要自己写
-
那你们的那个项目还继续做吗?不好意思帮不了你!