-
小功率就2N7002咯~
-
楼主那么牛啊,打算自己写内核,听说linux内核是c写的,楼主先学学c吧。。。英雄出少年,楼主好样,我这现在连用linux都成问题,呵呵!
编程思想是自己模仿和练出来的。。。。别人指导不了的。
-
用STM8S105K4 测试没有此问题。不过要在选项字不选AD的外部触发。
基本可以判断是STM8S103K3的BUG了。
网上搜了下,发现STM8S103问题不少。
-
引用 2 楼 kyzf 的回复:
楼主是 自己画的PCB ,让别家生产,还是自己完全由别人代工?
如果仅仅是让别人生产PCB,一般的PCB厂家都应该可以,至于单板的稳定性、可靠性,得设计原理图和PCB的人进行把关。
是由别人代工设计原理图和PCB
-
应该不是串口的问题,我串口通信写程序验证过了,就是把串口程序和舵机程序整合就不行了
-
零磁道概念问题,涉及硬盘的物理结构和CHS 3D寻址方法。老硬盘一个磁道上分63个扇区,更老的还没63个扇区,物理磁头也就6-8个吧(3-4片盘片),再多硬盘里就装不下了。使用8位寻址方式,8位二进制数的最大值是256(0-255),用于表达磁头数;但实际只用255来表示磁头数。而扇区只有63个(1-63),用6位就可以表达了,还有二位就给柱面去用了,柱面数用10位来表达,达到1024(0-1023)。这也就是所谓的C(柱面)H(磁头)S(扇区) 3D参数。一般书写时按照CHS的次序来做,如0,0,1第一个0是0柱面,第二个0是的磁头(盘面)第三个1是1扇区。硬盘的实际物理磁头只有4个或6个,现在有些硬盘只有一个磁头,仅用一面。如果有块硬盘正好符合上面的8位寻址方式的最大值,可以想象这个硬盘有128片盘片,每个盘面上有1024个磁道,每个磁道上有63个扇区。这就是它的CHS 3D参数。顺便说一下由于受8位寻址的限制,采用8位寻址时的最大寻址空间为8.4G。(1024*255*63*512/1024/1024)目前主板的BIOS已采用28位寻址,最大寻址空间137G,最前沿的主板BIOS采用48位寻址,已突破了137G的瓶颈。每个虚拟盘面上同一位置的磁道就称为柱面。如0,0,1,表示:第一个0,0柱面,是指位于128个盘片上的零磁道,但没讲是在那片盘上;第二个0,0磁头对应于0盘面,其实用盘面来理解更确切,1,1扇区,现在定位已完成。0,1,1,在刚才位置的反面。其实这些是不要我们操心的,硬盘内部的参数和主板BIOS之间会达成协议,正确发出寻址信号,正确定位磁道和扇区位置。
0,0,1指的是MBR所在的主引导扇区,零磁道从0,0,1-0,0,63,为真正的零磁道,它的位置一般做好后就不能用一般软件来修改了,如果要改变,必须在固件区做相应修改,但这已不是一般用户能做的事,且需要用特殊的工具。它的读取是主板中BIOS通过INT19去读它的信息。0,1,1是DBR所在位置,这个扇区坏了,MS的OS就会说是“零磁道”损坏,其实这并不是零磁道,都是MS闯的祸。它坏了是可以用PCTOOLS等软件来修改这一起始位置,从而避开这一扇区。如果坚持0,1,1为0磁道,那岂不是要有255个0磁道?至少物理盘片的开始要称作零磁道吧。如果是这样定义叫硬盘怎样去找扇区?那就要大乱了。
老硬盘由于每磁道上只有63个扇区,甚至少于63个扇区;因此,外圈疏,内圈密,没有很好地利用盘面资源,现在磁盘内外圈密度相同,圈子上也不再是63个扇区了,不再用CHS 3D参数,一般都用LAB逻辑寻址方式,也有称作为线性寻址。传统意义上的零磁道,只是磁道上的一小段了,但有一点是相同的,一个硬盘必须有一个唯一的起点,那就是LAB 0扇区,对应于CHS的0,0,1。它坏了一般的软件就没办法了,但有些零磁道损坏的硬盘是可以通过用PC3000或别的软件来进行维修的,经物理扇区和逻辑扇区重定位,重新确定一个新的起点。圆方数据恢复中心在这方面有成功的例子,对某些品牌的硬盘分别使用了PC3K和其它软件成功修复了真正的零磁道损坏。但是也不是所有硬盘都能支持重定位。归根到底还是要硬盘本身支持才行。以前有文章称用PCTOOLS等软件来修复零磁道损坏的硬盘,其实这些软件改的并不是真正意义上零磁道,这一错误的观点一直在误导读者,流毒甚而为广深。不过这个错误的根源还在于M$的错。
特别说明:在零磁道前还有负磁道,但它是厂家的硬盘参数区,一般使用者不能访问,更不能修改。
-
俺博客有一些介绍,估计对你有点帮助。good luck
-
友情帮顶。。。
-
错误信息是:???
-
是否某些库在SOURCES文件里没有添加?
-
你看看编译后,code大小如果不大于8K应该就可以了吧。我编写的程序编译后14K呢。一样可以烧写进去。
-
引用 56 楼 zhangwenlang 的回复:
googleman老兄,你们开发的某些功能跟我以前做的越来越类似了。。。。
那就多来指导呗,我把组件选上去,还是不行。郁闷
-
[url=http://blog.eeworld.net/gooogleman/archive/2009/09/11/4544046.aspx][/url]
-
引用 13 楼 rushonin 的回复:
#define? READADDRESS? 0x10000000 属于物理地址
或者用虚拟地址, 或者加PAGE_PHYSICAL标志。
VirtualCopy((PVOID)DataAddr,(PVOID)(READADDRESS),sizeof(BYTE),PAGE_READWRITE | PAGE_NOCACHE )
这里已经转换成虚拟地址了 。
难道有错?寄存器就是用的这个方法
-
引用 3 楼 veabol 的回复:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\Timeouts]
; @CESYSGEN IF PM_PM_DEFAULT_PDD
? ? "ACUserIdle"=dword:0 ; in seconds
? ? "ACSystemIdle"=dword:0 ; in seconds
? ? "ACSuspend"=dword:0 ; in seconds
? ? "BattUserIdle"=dword:0 ; in seconds
? ? "BattSystemIdle"=dword:0 ; in seconds
? ? "BattSuspend"=dword:12c ; in seconds
试下
这个我试了,没有效果.
-
引用楼主 qwqwqw408 的回复:
? CString s;
? s.Format(L",%d", mem_stat.dwAvailPhys/1024);
? memory += s;
CString 的 operator +=?
LZ 确定它不会增加 memroy 的使用??
Paul, Chao @ Techware
-
Use GetLocalTime or GetSystemTime to retrieve the current date and time. There is only RTC run when system is suspended, and RTC will update the system time when waked up.
There is no safe way if user changed the system time frequently. You can combine GetTickCount & GetLocalTime to archive your goal, perhaps.
-
友情帮顶下。
-
WINCE下自带的web server不支持aspx,只支持html跟asp的.
可以选择用asp,你第一步任务是在WINCE上添加上web server组件。
-
1、申请系统中断号:KernelIoControl(IOCTL_HAL_REQUEST_SYSINTR, &Irq, sizeof(UINT32), &m_dwSysintrEINT12, sizeof(UINT32), NULL)
2、创建事件:g_keyevtSignal =CreateEvent(NULL, FALSE, FALSE, NULL);
3、将事件与系统中断关联:InterruptInitialize(m_dwSysintrEINT12, g_keyevtSignal, NULL, 0))
4、创建中断线程:CreateThread((LPSECURITY_ATTRIBUTES)NULL,0, (LPTHREAD_START_ROUTINE)InterruptThreadKey,0,0, NULL);
5、线程中等待中断事件:WaitForSingleObject(g_keyevtSignal, INFINITE);
KernelIoControl(IOCTL_HAL_REQUEST_SYSINTR会调用OAL中的OALIoCtlHalRequestSysIntr