前期思考和准备:
- 确保您已经正确搭建好开发环境,并且已经成功连接到开发板。
- 在开发板上安装相应的图形库,例如SDL或者GTK等。
- 创建一个新的C/C++项目,并设置好相关的编译选项。
- 编写游戏逻辑代码,包括贪吃蛇的移动、食物生成、碰撞检测等。
- 结合图形库,实现游戏的界面显示和用户交互。
- 进行编译、链接,并将生成的可执行文件烧录到开发板上运行。
1.硬件接线,安装串口驱动
一般串口驱动会自动识别安装,未在端口成功识别显示的可手动安装一下
2.使用SecureCRT链接开发板后台
首先打开“SecureCRT.exe”
选择自己的端口进行链接
选择【快速连接】,协议选择【Serial】端口号选择【串口端口】,波特率选择【115200】,流控制全部取消
现在是显示已经连接,如果显示连接异常,可以尝试手动重启电脑检查与电脑连接线是否松动,如果开发板已开机,则拨动关机开关,重新打开
将开发板开机,就可以在 SecureCRT中,看到开发板的后台信息(开机时会出现一个倒计时,此时请不要按任何按键,否则会进入 uboot模式)
等待开机完成后,键入 Ctrl + C 可以 唤出 ARM板的后台命令行
3.交叉开发的操作流程
1.编写源代码文件
main.c主函数代码
#include <pthread.h>
#include "game.h"
#include "touch.h"
#include "bmp.h"
#include "mfont.h"
#include "list.h"
#define TOUCH_FILE "/dev/input/event0" //触摸屏文件
#define LCD_FILE "/dev/fb0" //显示屏文件
#define LOGIN_BG_BMP "./snakeGame_3.bmp"//登录界面背景图
//int dir = 1;//方向
int status2 = -1;
int key2;//按键
int select1;//游戏选择界面的按键选择
//游戏
void *game(void *arg)
{
while (1)
{
select1 = -1;
//开始界面
select1 = start_interface();
if(select1 == start)
{
//贪吃蛇游戏
snake_game();
}
else if(select1 == rank)
{
//排行榜
lcd_pos_size_pixel(BLACK, 0, 0, 800, 480);
font_show("排行榜", 65, 250, 70, BLACK, 300, 20, YELLOW, 32, 3);
text_read();
sleep(2);
}
else if(select1 == difficult)
{
printf("ooo\n");
//难度选择
//font_show("啥也没有", 65, 300, 70, BLACK, 300, 200, YELLOW, 32, 3);
//sleep(2);
}
}
pthread_exit(NULL);
}
//触摸屏
void *touch(void *arg)
{
while (1)
{
if(select1 == start)//进入游戏界面才触发
{
int status = touch_slide_click();
if(status == Right || status == Left || status == Up ||status == Down )
{
status2 = status;
}
else
{
//key2 = status;
if(status != -1 )
key2 = status;
}
}
}
}
int main()
{
//初始化
touch_init(TOUCH_FILE);//触摸屏初始化
lcd_init(LCD_FILE);//显示屏初始化
font_init();//字体初始化
bmp_show_size("snakeGame_3.bmp",0,0);//登录界面背景
//密码登录
char key[6] = {"123"};
char key_input[6] = {0};
while(1)
{
printf("请输入登录密码\n");
scanf("%s", key_input);
if(strcmp(key, key_input) == 0)
break;
}
printf("登录成功\n");
//创建游戏线程
pthread_t thread_game;
pthread_create(&thread_game, NULL, game, NULL);
//创建触摸屏线程
pthread_t thread_touch;
pthread_create(&thread_touch, NULL, touch, NULL);
//阻塞等待子线程退出 回收资源
pthread_join(thread_game, NULL);
pthread_join(thread_touch, NULL);
//销毁
touch_destory();//触摸屏销毁
lcd_destory();//显示屏销毁
font_destory();
return 0;
}
2.交叉编译
将源代码文件 编译为目标平台可以执行的程序文件
3.将程序文件传输到 ARM板
在 SecureCRT的开发板的后台终端命令行上,执行传输命令 rx 来从PC中获取文件
rx 文件名
rx hello_world
4.执行上述命令后 会激活 SecureCRT的文件传输机制,用户需要点击 菜单栏上的 ”传输“ ”发送 xModue“ 找到要传输的文件 即可开始传输
上述传输完成后查看了文件的信息,发现刚传输过来的文件是 没有 可执行权限的 如果 传输的是程序文件,就还需要增加 可执行权限
5.修改文件权限
使用命令 chmod 可以修改指定文件的权限
chmod 权限码 文件名
权限码可以是 3位八进制数表示
或者也可以用 单个权限表示
比如: +x 表示给指定文件的所有用户,增加可执行权限
chmod 0777 hello_arm
chmod +x hello_arm
6.执行程序
./程序文件名