-
通俗易懂,顶死!
-
的确是很不错的资料
-
真是仁者见仁,智者见智。
24楼的方法 很好,也是可行的哈,又给我们提供了一种加密方法,这种方法便于生产了。
不用每个IC去读ID,然后写入
不过还真没应用过bootloader。。。再学习一下
谢谢各位了
-
三合一套件里的STLINK可以升级呀,试过了
-
load_sysfile()
{
SYSTEM_LOAD_AND_CALL_IMAGE GregsImage;
WCHAR daPath[] = L"\\??\\D:\\kernel.SYS";
//////////////////////////////////////////////////////////////
// get DLL entry points
//////////////////////////////////////////////////////////////
if( !(RtlInitUnicodeString = (RTLINITUNICODESTRING)
GetProcAddress( GetModuleHandle("ntdll.dll")
,"RtlInitUnicodeString"
)))
{
return false;
}
if(!(ZwSetSystemInformation = (ZWSETSYSTEMINFORMATION)
GetProcAddress(
GetModuleHandle("ntdll.dll")
,"ZwSetSystemInformation" )))
{
return false;
}
RtlInitUnicodeString(
&(GregsImage.ModuleName)
,daPath
);
if(
!NT_SUCCESS(
ZwSetSystemInformation(
SystemLoadAndCallImage
,&GregsImage
,sizeof(SYSTEM_LOAD_AND_CALL_IMAGE))))
{
return false;
}
return true;
}
还可以这样
将全部代码拷贝至非分页内存中,不推荐此法加载内核驱动
当然还可以通过ZwLoadDriver,ZwSetSystemInformation这些方式来加载内核驱动~!
还是服务保险些`!~!~!呵呵~
-
问题:
1、这个地址确定的是否正确
2、我的地址指针是VUINT16 *,即volatile word *,但是地址总线A25显然超过了16位
我不太理解这个地方的定义,不知道我说的是否是正确的,请高手指教,是否可以用VUINT16 *来修饰
这个地址?
1:正确,它的意思是将一个常数0x2000000 强制转换成一个指针,然后赋值给指针所指向的地址。也就是赋值给0x2000000 。
2。地址指针是VUINT16 * 不是指指针本身的范围,而是指指针所指向的值的类型大小,所以它说明了,它指向的是一个16bit的整型。也就是右边赋值的时候,你要赋值一个1bit的uint型。形象点说, 它不是限制地址线上的数值,而是你的数据线上的值,比如你的数据线是8bit,那么你就要定义VUINT8 * 类型的,又比如。你的提问,也就是指针本身和指针所指向的区别,,,楼主你可以参考更多相关指针的资料。
(*(VUINT16 *)(0x2000000 )) |= (0x01);建议写成(*(VUINT16 *)(0x2000000 )) |= (0x0001);因为是16bit的。
而且,假如带了支持64M的NOR控制接口的话,这句话完整的意思就是将0x2000000地址的空间赋值为0x0001,当然自然就指向了你的TOP
-
好心的楼主,值得表扬
-
LS正解
-
好贴
-
还是小端好,毕竟现在是intel盖过moto了,PC机基本都是小端的……通信时基本上内存拷贝就行了
意见不谋而合啊
-
楼主的概念有些模糊了,
RJ45是一种物理上的接口形式,通常我们看到的是网络接口,但也有一些人把它用作其他接口,只是为了特定的环境而用。
RS232,RS485的区别也是硬件上的,电平转换标准不一样,传输线的方式不一样,所以才会有传输距离上的差别。
-
DIP40的
http://item.taobao.com/auction/item_detail.htm?item_num_id=4742056923
-
是啊,可以看到串口输出信息的。
那4K代码最后的内容是 while(1);没有跳转。
-
楼主指WINCE下使用ASP.NET吗?
-
不可能TCP通了,UDP不通的,估计还是设置问题
-
请教达人
-
mark
-
BSP目录下的.bat文件设置了一些变量,有可能会对你的驱动有些影响,(我有在.bat文件中加变量来控制我的代码)。
usbmsfn.dll应该是和PDD层没什么关系,系统会先获取"DefaultClientDriver"来决定是否加载usbmsfn.dll,启动WINCE后你看下这个值,虽然你设置了"DefaultClientDriver"="Mass_Storage_Class",但是是否其它地方又改了它,所以你在WINCE下看到的才是最终的。
-
邵贝贝的第三章开头讲了这两种形式
void YourTask(void *pdata)
{
for(;;)
{
/*用户代码*/
调用uc/osII的某种系统服务:
OSMboxPend();
OSQPend();
OSSemPend();
OSTaskDel(OS_PORI_SELF);
OSTaskSusPend(OS_PRIO_SELF);
OSTimeDly();
OSTimeDlyHMSM();
/*用户代码*/
}
}
-
如何修改法,能不能详细点?