自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 开始新的工作

从WinCE4.2到5.0的更替算是正式完成了,将近一个月的忙活儿之后终于可以歇口气了。现在开始继续原来的教材编写--到了最关键也是最难的地方了:裸机WebServer。已经有了一个小型WebServer的源代码了,主要的工作就是CS8900网卡驱动的移植。显然从该源码向Eboot移植是最方便的,但是这样项目就无法在ADS编译了,可是反过来的难度实在太大...正在考虑p.s.Primer看完了

2006-12-29 10:32:00 1134

原创 《C++ Primer》读后感

刨去加班,前后差不多整整一个月的时间看完了传说中的《C++ Primer》。拿到书的时候我才知道这本书原来是Lippman的作品。感觉这本书就像是在介绍C++的编译器,完整的介绍了C++语言的每一个死角,牛头Terrence说的不错,Primer其实就是本字典。看这本书最大的感受就跟当初读Thinking in Java一样:力求全面,以至于一些违背设计原则永远也用不着的语法现象都说的一清二楚

2006-12-26 18:48:00 1465

转载 SSE指令介绍及其C、C++应用 zz

http://blog.csdn.net/fireseed/archive/2004/06/01/2185.aspxSSE是英特尔提出的即MMX之后新一代(当然是几年前了)CPU指令集,最早应用在PIII系列CPU上。现在已经得到了Intel PIII、P4、Celeon、Xeon、AMD Athlon、duron等系列CPU的支持。而更新的SSE2指令集仅得到了P4系列CPU的支持,这也是为

2006-12-26 15:11:00 1019

原创 CE中的亮度控制

对于S3C2440讲,亮度的控制只是对GPIO的TIMER0 Compare寄存器0读写。另,在CE驱动中,对于系统中的寄存器,没有必要自己重新VirtureCopy-VirtureAlloc,CE已经做好了映射:v_pPWMregs->TCMPB0; 对于亮度控制,还需要进行一次初始化(待续)

2006-12-26 12:37:00 1575

原创 WinCE中的音量/亮度控制

一开始使用了winmm.dll(ce驱动里面可以直接用,不用LoadLibrary)里面的mixer api,比较麻烦,好不容易编译过去了,调用又失败了。后来一查,这算是DirectSound函数集,不建议使用,尤其是像音量控制这么简单的要求。后来使用了最简单的waveOutGetVolumn和waveOutSetVolumn函数,却奏效了。 Debug了几个低级的边界越界错误后,一切正常。按照同

2006-12-25 23:20:00 2721

原创 WinCE下模拟电视音量/亮度菜单框架开发完成

首先描述一下功能:完全模拟电视,3个按键,1个功能选择,剩下的两个进行值的加或减,指定时间无操作则自动消失。最初的想法是在Shell上绘图,这样最直接,但是最大的问题是如何擦除,可行的方法是进行屏幕刷新,但是我试了好几次都不行,于是换成了现在的方案:把所有的显示都用窗体模拟,开发流程如下:1、从EVC中抓取SDK程序的代码,放到驱动中。之所以这么做,是因为驱动中无法使用MFC,PC平台的S

2006-12-22 18:04:00 2119 6

原创 驱动中的WIN32开发

1.驱动中不是任何事情都可以做的,比如无法使用MFC。说驱动可以做任何事是就硬件操作和操作系统内核而言的,要做一点类似应用的开发就只能用SDK。2.WinCE与其他平台的差异。总以为CE下的开发与PC平台的windows开发没什么差别,其实差别还是很显著的,n多在pc上可以实现的功能在ce中都不支持,比如不支持透明窗体等。以后大家在做ce的时候要小心。今天我花了2个多小时在MFC上,浪费了

2006-12-21 16:29:00 1242

原创 MFC on WinCE

1.WinCE为了节省资源,不支持透明窗体,只能手工实现(GetPixel + SetPixel,但速度可想而知)因此,要想实现一个类似电视那种的悬空控制界面只能考虑得到桌面的DC,然后绘制图像。擦除图像只要刷新桌面即可,但是我无论如何也无法实现WinCE桌面的刷新,PostMessage 调用DC成员函数都不行....还不知道怎么办2. 今天倒是解决了一个比较常见的问题:CButton上显示

2006-12-20 22:24:00 1744

原创 失败的尝试

CE下可以通过MmMapIoSpace进行硬件的直接访问,比如可以操作LED(昨天已试成功),但是操作Nand还是不可行的,在EVC下进行的任何关于nand的操作都失效了,Flash的ID读出来总是0,更夸张的是一进行写操作程序就自动退出了。估计CE对Nand进行了保护。这个尝试失败了。接下来的任务:在之前的按键驱动中作一个 模拟电视的音量和亮度调整。

2006-12-20 09:49:00 951

原创 带24位真彩显示与内核加载进度条的Eboot

今天首先搞定了24位真彩图片的数据提取器,然后找到了BP_开头的flash操作函数(在public/common/oak/drivers/ethdbg/下),拿到Eboot目录下,加上了LCD操作的函数,完成了进度条功能。从效果上看明显比原来的要好得多,24位真彩显示,美化后的进度条...专业。之后又将这个功能移植到nboot2。接下来的任务:写一个CE下擦写Nand-Flash的程序,用

2006-12-18 14:40:00 1702

原创 WinCE源代码的一个Bug

早就觉得WinCE里面Eboot的源代码质量不高,而且还有Bug,今天又发现一个:dwNumBlocks = (dwImageLength / 0x4000) + 1;这是烧写Stepldr和Eboot时候计算Block数的代码,Stepldr在第一块,即0,所以加1,但是Eboot的大小为256K,即0x40000,除以0x4000,正好不用加1,结果这个地方还加了个1,属于低级失误。真

2006-12-17 23:02:00 1424

原创 VC中的三个问题

1 - UI线程外UpdateData:在线程中通过发送消息UpdateData界面1.自定义消息:#define WM_UPDATEDATA  10000+1  // 更新界面 2.添加消息映射: ON_MESSAGE(WM_UPDATEDATA, OnUpdateData)3.定义消息处理函数:LRESULT CDlg::OnUpdateData(WPARA

2006-12-17 01:47:00 919

原创 CE按键驱动开发笔记之Final--OK

今天解决了EINT11和EINT19的区分问题,一开始用自定义的宏rEINTPND失败了,发生了内核错误,后来找到一个叫_pIOPregs->EINTPEND的东西,这个东西就是要用的EINTPND,通过v_pIOPregs->EINTPEND & (1 EINTPEND & (1 我的第一个CE驱动成功了!p.s.今天又改了下5.0的Eboot,还是把网口下载改为USB下载。由于5.0的

2006-12-15 10:35:00 1487 1

原创 CE按键驱动开发笔记3--驱起来了!

今天终于将四个按键都驱起来了!收获如下:一个外部中断,必须首先在驱动IST中调用KernelIOControl(IOCTL_HAL_REQUEST_SYSINTR) 将IRQ和SysIntr关联起来。不过很多时候是静态关联的(调用OALStaticTranslate),s3c2440下的PwrButton是动态关联的,所以无需在BSPIntrInit中添加静态关联。IRQ与SysIntr关

2006-12-14 20:52:00 1501

原创 CE驱动开发3与CE5其他

今天就是开了下中断,EINT11能用了。CE内核自动处理了EINT8_23到EINT11和EINT19的转换。但是不知道为什么EINT19触发不了。但是IRQ到SysIntr的连接还是没有搞定,其实所有的工作都是在这里 ,连好之后一切就都是顺其自然了。另,今天发现Nboot2加载内核到85%的时候会花屏,后来一算:CE5的加载地址:0x32001000,显存地址:0x33800000,两个一减

2006-12-13 19:22:00 1191

原创 CE5按键驱动开发笔记-2

 今天首先将PwrButton驱动的原有代码改成了两个MessageBox,果然好使,充分体会到了可以在驱动中做一切的说法。然后发现必须在Block0烧入nboot的情况下CE5才能正常启动,搞得我莫名其妙,不管怎么样,这个问题是解决了。之后,尝试修改ce核心的intr.c,企图映射IRQ8_23,结果失败了,连ISR都没有启动...

2006-12-12 21:57:00 1344

原创 打开64K程序神话的大门

想必大家都领教过那个用64k显示3d并且还有声音的程序,紫丁香C版版主SwordLea将其反编译,得到了64K的第一层代码,下面是我在紫丁香的文章:这两天学习了一下老lee反汇编出来的代码,大概弄懂了整个代码的执行流程,贴出来跟大 家交流一下,本人汇编也不是很熟,肯定有不对的地方,还请高人指出。 整个代码主要分三个部分,一个是标记为start的入口函数,一个是标记为sub_155的字函 数,这

2006-12-11 21:58:00 4548 1

原创 GPIO键盘驱动开发进程-1

花了大半天的时间搞清了CE下的中断处理流程,感觉有了点底。最大的突破还是在ce例程源码中找到了EINT0的复位按钮的驱动源码,所以所有的工作在这里进行就可以了,这样就可以直接修改这个驱动源码,省去绝大多数的细节(诸如注册表等)了!看了一下他的代码,发现PowerButton竟然被实现为一个流接口驱动程序,这个有点不太理解,当然Read-Write函数等等都是直接返回了0。其实驱动开发本来就

2006-12-11 15:54:00 2476 3

原创 终于要写CE驱动了!

 之前写的几个东西也叫驱动,只不过是裸机驱动,不过操作系统,比较简单。从8-2号开始干活到今天12-7号,经过整4个月,今天终于要写CE驱动了! 把板子上的四个按键驱成键盘!要涉及到ce的中断开发。ce下的驱动有两种,一种是内建驱动,就是写到内核里的,另一种就是流设备驱动,专用于数据处理的设备,如摄像头等。因为是键盘,应该是内建驱动。学习CE中断先...

2006-12-08 09:28:00 2471

原创 Steppingstone Loader of WinCE 5.0

 原先WinCE4.2的nboot在5.0里成了stepldr,只读取eboot。在pb5中单独编译stepldr时,发生一个错误,post-process中的debug截取文件动作无法进行,还得手工来完成:进入debug,将cx修改为1000,即4k,然后调用w指令,参数为1100(偏移),写为新的stepldr.nb0。其实,wince4.2的nboot是可以和5.0兼容的,将2410in

2006-12-06 15:52:00 1906 5

原创 WinCE 5.0 & its eboot

公司已经全面转向CE 5.0了,原因如下:1、CE 5.0体积骤减,原先一个2440的4.2镜像文件要30M,现在同样组件数量的5.0镜像才20M2、烧写速度暴长:原来烧4.2的镜像要4分钟左右,现在,20m的东西,只要20-30秒左右,这差距....3、运行速度剧增:经理说5.0的多媒体处理速度为4.2的1.3倍;内核加载速度巨快,约为原来的3倍接到的第一个任务还是改他的Eboo

2006-12-05 18:16:00 1602

原创 AD转换器驱动的实现

AD转换总共才用了两个寄存器 ,操作也不难,总共才写了6页。接下来就要进行嵌入式Web-Server的移植了,这个是大头,做好了这个,再把原来所有的一整合就OK了!不出意外,应该不超过12月就能完成。

2006-12-04 11:20:00 1397

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除