这两天看了一下CTK部份的源码,简化了最小的图形系统,能顺利的编译成功了,但还没有实现任何功能。
我的思路是不修改系统中的任何文件,只修改它的配置文件(contiki-conf.h、contiki.h)和增加功能性的文件,达到使用的目的。
先上一下使用的系统文件:
-[F]whz_contiki {
|-[F]ctk {
| |-ctk-conio.c
| |-ctk-conio.h
| |-ctk-draw.h
| |-ctk-mouse.h
| |-ctk.c
| |-ctk.h }
|
|-[F]lib {
| |-libconio.c
| |-libconio.h }
|
|-[F]sys {
| |-arg.c
| |-arg.h
| |-cc.h
| |-clock.h
| |-etimer.c
| |-etimer.h
| |-lc-switch.h
| |-lc.h
| |-process.c
| |-process.h
| |-pt.h
| |-timer.c
| |-timer.h }
这次编写了ctk_arch.h及ctk_arch.c文件,实现了硬件的外部接口。
ctk_arch.c文件如下:
/*---------------------------------------------------------------------------*/
void ctk_arch_draw_char(char c,
unsigned char xpos,
unsigned char ypos,
unsigned char reversed,
unsigned char color) {
}
/*---------------------------------------------------------------------------*/
char
ctk_arch_getkey(void)
{
return 0;
}
/*-----------------------------------------------------------------------------------*/
unsigned char
ctk_arch_keyavail(void)
{
return 0;
}
这样就能够使用gcc进行正确编译了。
我的思路是在ctk_arch.c文件中设置一个缓冲区,比如我常用的是192×64的屏做开发,定义一个buf[24][8]的字符数组,用来保存字符数据,这样就能在gcc下调试CTK的接口了。
做一个小小的推荐,最近在Linux下用exVim来读源代码,用gcc编译测试,用起来非常爽。
上传一个编译成功的图片,以图为证。