基于arm的五子棋游戏设计内容摘要:

于 PC 上调试区别很大,必须及时测试。 才能及时发现错误。 2.由于经常使用 C 高级语言,随时定义变量,从而导致了很多错误,带来了不少麻烦。 3.在嵌入式平台上开发,需经常考虑到嵌入式平台的性能。 尽量少用 for循环等复杂度较高的结构。 4. 开发嵌入式软件有基本固定的流程,并需要软硬件平台的相互配合。 设计过程中出现的问题有可能是硬件设置的不合理引起的,也有可能是软件代码设计的不合理 引起的。 5..在嵌入式软件开发过程中,工具链的制作扮演了十分重要的角色。 一个好的开发工具可以加快软件的开发速度,提高软件的质量。 反之,则不但有可能会延长整个产品的开发时间,降低产品质量,严重的话还可能导致整个项目的失败。 6.由于 不太熟悉 ARM9 开发平台及开发环境,时间方面也比较紧张,在开发游戏期间遇到很多困难,不过还好在老师的指导下,加上和同学的交流沟通,最后完成了设计。 参考文献 1 《 EVC 高级编程及其应用开发》 王兵 李存斌 陈鹏 等编著 中国水利水电出版社 2 《 270RP_wince 实验指导书》 嵌入式系统原理与应用课程设计 15 附:设计程序代码 1) LCD 的驱动程序 /*******************************。 * 北京精仪达盛科技有限公司。 * 研 发 部。 *。 *。 *。 * 文件信息。 *。 * 文件名称 :。 * 文件功能 : 该文件为 S3C2410 硬件平台配置具体函数的初始化。 * 补充说明 :。 * 最新版本信息。 * 修改作者 : ARM 开发小组。 * 修改日期 : 2020/01/08。 * 版本声明 :。 * 历史版本信息。 * 文件作者 : ARM 开发小组。 * 创建日期 : 2020/04/20。 * 版本声明 :。 *。 ****************************************************************************/ include linux/ include linux/ include linux/ include linux/ include linux/ include linux/ include linux/ include linux/ include linux/ include linux/ include linux/ include linux/ include linux/ include linux/ include linux/ include linux/ include linux/ include asm/ include asm/ 16 include asm/ include asm/ include asm/ include asm/proc/ include linux/ include asm/ include asm/arch/ include define MVAL (13) define MVAL_USED (0) define M5D(n) ((n) amp。 0x1fffff) // To get lower 21bits define CLKVAL_TFT_640480 (1) define HOZVAL_TFT_640480 (639) define LINEVAL_TFT_640480 (479) define LCD_XSIZE_TFT_640480 (640) define LCD_YSIZE_TFT_640480 (480) define LCDFRAMEBUFFER vLCD_BASE //_NONCACHE_STARTADDRESS define VBPD_640480 ((331)amp。 0xff) define VFPD_640480 ((101)amp。 0xff) define VSPW_640480 ((21) amp。 0x3f) define HBPD_640480 ((481)amp。 0x7f) define HFPD_640480 ((161)amp。 0xff) define HSPW_640480 ((961)amp。 0xff) typedef unsigned long tOff。 define XY2OFF(x,y) (tOff)((tOff)y*(tOff)640 + (x)) define READ_MEM(Off, Data) Data = LCD_READ_MEM(Off) define WRITE_MEM(Off, Data) LCD_WRITE_MEM(Off, Data) define GETPIXEL(x, y) GetPixelIndex(x, y) define SETPIXEL(x, y, c) SetPixel(x, y, c) U32 save_rGPCUP,save_rGPCDAT,save_rGPCCON。 U32 save_rGPDUP,save_rGPDDAT,save_rGPDCON。 U16 LCD_COLOR。 U16 LCD_BKCOLOR。 define LCD_MAJOR 60 /************************************************************************************************************ 函数名称 : void CloseLCD(struct inode * inode, struct file * file) 函数说明 : LCD 关闭 输入参数 : struct inode * inode, struct file * file 输出参数 : 0 ******************************************************************************/ 嵌入式系统原理与应用课程设计 17 static void CloseLCD(struct inode * inode, struct file * file) { printk(LCD is closed\n)。 return。 } /******************************* 函数名称 : static int OpenLCD(struct inode * inode, struct file * file) 函数说明 : LCD 打开 输入参数 : struct inode * inode, struct file * file 输出参数 : 0 ******************************************************************************/ static int OpenLCD(struct inode * inode, struct file * file) { printk(LCD is open\n)。 return 0。 } /******************************* 函数名称 : static int LCDIoctl(struct inode *inode,struct file * file,unsigned int cmd,unsigned long arg) 函数说明 : LCD 控制输出 输入参数 : 输出参数 : 0 *******************************/ static int LCDIoctl(struct inode *inode,struct file * file,unsigned long cmd,unsigned long arg) { struct para { unsigned long a。 unsigned long b。 unsigned long c。 unsigned long d。 }*p_arg。 switch(cmd) { case 0: printk(set color\n)。 Set_Color(arg)。 LCD_FillRect(0,0,639,479)。 printk(LCD_COLOR =%x\n,LCD_COLOR)。 return 1。 case 1: printk(draw h_line\n)。 Set_Color(0xFF)。 LCD_FillRect(0,0,639,479)。 18 Set_Color(0xFF0000)。 p_arg =(struct para *)arg。 LCD_DrawHLine(p_arga,p_argb,p_argc)。 // draw h_line LCD_DrawHLine(p_arga,p_argb+30,p_argc)。 // draw h_line LCD_DrawHLine(p_arga,p_argb+60,p_argc)。 // draw h_line LCD_DrawHLine(p_arga,p_argb+90,p_argc)。 // draw h_line LCD_DrawHLine(p_arga,p_argb+120,p_argc)。 // draw h_line LCD_DrawHLine(p_arga,p_argb+150,p_argc)。 // draw h_line LCD_DrawHLine(p_arga,p_argb+180,p_argc)。 // draw h_line LCD_DrawHLine(p_arga,p_argb+210,p_argc)。 // draw h_line LCD_DrawHLine(p_arga,p_argb+240,p_argc)。 // draw h_line LCD_DrawHLine(p_arga,p_argb+270,p_argc)。 // draw h_line LCD_DrawHLine(p_arga,p_argb+300,p_argc)。 // draw h_line LCD_DrawHLine(p_arga,p_argb+330,p_argc)。 // draw h_line LCD_DrawHLine(p_arga,p_argb+360,p_argc)。 // draw h_line LCD_DrawHLine(p_arga,p_argb+390,p_argc)。 // draw h_line LCD_DrawHLine(p_arga,p_argb+420,p_argc)。 // draw h_line return 1。 case 2: printk(draw v_line\n)。 p_。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。