精华内容
下载资源
问答
  • ARm开发板

    2011-09-07 22:59:17
    ARm开发板
  • Arm开发板的开发步骤及arm开发板的调试方法 更多资源请访问http://www.59186618.com
  • 学习ARM开发板嵌入式开发板的入门实验手册
  • arm开发板http客户端远程升级程序,提供了远程升级的示范代码。
  • 在ARM开发中,我们调试的时候经常要将文件传输到ARM开发板上进行调试,或者将ARM开发板上的文件下载出来,这时候我们就可以通过SecureCRT利用rz、sz命令进行和ARM开发板间的文件传输。这些是编编译好的ARM开发板文件...
  • 目前有个QT5程序(QML界面)在arm开发板运行,现在想利用libtorch调用pytorch模型test.pt文件。请问libtorch可以移植到arm开发板上吗?
  • ARM开发板 电路图

    2014-03-24 10:10:51
    ARM 开发板 电路图PROTEL99 版
  • FS270-DVK2.0 ARM开发板用户手册pdf,FS270-DVK2.0 ARM开发板用户手册
  • ARM开发板阿里云实战项目资料
  • 基于uClinux内核移植ARM开发板应用,针对“如何在以S3C44B0X为核心的ARMSYS开发板上建立uClinux内核移植”的一个总结,其内容包括对Bootloader的功能分析和uClinux2.4.24发行版内核基础上针对S3C44B0X开发板进行修改...
  • arm开发板原理图

    2013-12-03 20:05:29
    arm开发板原理图,带DSP,CPLD ,串口通信。
  • arm开发板电路 arm7开发板电路 原理图 arm7开发板电路 原理图
  • arm开发板上移植PHP,已经编译成功,支持编译器arm-none-gnueabi-linux
  • 使用ARM开发板实现DHCPD服务器功能。
  • 此资源为介绍在在运行linux的ARM开发板上移植SSH,三个源码安装包zlib openssl,openssh已提供,和SSH移植文档介绍 以及strace系统调试工具
  • Apache 2 移植到Arm开发板, 将Apache运用于嵌入式开发板中。
  • iTOP-IMX6UL 实战项目:ssh 服务器移植到 arm 开发板 实验环境:迅为提供的 Ubuntu12.04.2 以及虚拟机 编译器:arm-2009q3 编译器 开发板系统:QT系统
  • arm开发板开发环境搭建一、XShell连接开发板二、ubuntu配置交叉编译器三、交叉编译四、ubuntu搭建nfs服务器五、ubuntu挂载到开发板上 一、XShell连接开发板 1.连接开发板,右击我的电脑->属性->设备管理->...

    一、XShell连接开发板

    1.连接开发板,右击我的电脑->属性->设备管理->端口
    在这里插入图片描述
    2.新建会话,添加SERIAL(串口)连接
    在这里插入图片描述在这里插入图片描述

    二、ubuntu配置交叉编译器

    目的:在ubuntu下编译,在arm开发板上运行

    • 第一步:查看当前系统是否支持arm-linux-gcc,如果不支持继续以下步骤

      在这里插入图片描述

    • 第二步:将arm-linux-gcc-4.3.2.bz2拷贝到虚拟机的任意目录

    • 第三步:在/usr/local创建一个文件夹为arm

      sudo mkdir /usr/local/arm

    • 第四步:将arm-linux-gcc-4.3.2.bz2解压到/usr/local/arm目录下

      sudo tar xvf arm-linux-gcc-4.3.2.bz2 -C

    • 第五步:进入到 /usr/local/armcd /usr/local/arm

      cd/usr/local/arm
      cd 4.3.2
      cd bin
      pwd得到arm-linux-gcc的路径为:/usr/local/arm/4.3.2/bin

    • 第六步:将上面得到的目录添加到环境变量PATH中
      sudo vim ~/.bashrc
      在文件的末尾添加:export PATH=/usr/local/arm/4.3.2/bin:$PATH
      ![在这里插入图片描述](https://img-blog.csdnimg.cn/2020063020210743.png#pic_center

    • 第七步:重启.bashrc脚本
      source ~/.bashrc

    三、交叉编译

    在这里插入图片描述在这里插入图片描述

    四、ubuntu搭建nfs服务器

    目的:开发板访问ubuntu的目录
    1.nfs服务安装:
    sudo apt-get install nfs-kernel-server nfs-common
    2.工作路径配置:
    sudo gedit /etc/exports,]
    加上以下语句:/ *(rw,sync,no_root_squash)
    3.重启服务生效:
    sudo service nfs-kernel-server restart

    五、ubuntu挂载到开发板上

    在开发板的终端操作->在开发板的/home有一个挂载脚本mount_nfs.sh,将/home/edu挂载到开发板的/mnt下
    ./mount_nfs.sh 10.30.155.3 /home/edu /mnt
    查看/mnt
    在这里插入图片描述在work中的tmp目录下运行可执行文件a.out
    在这里插入图片描述

    展开全文
  • arm开发板上设置环境变量 arm开发板上设置环境变量 arm开发板上设置环境变量
  • ARM开发板挂载NFS

    2011-09-29 17:17:14
    ARM开发板挂载NFS(成功实例)很实用
  • ARM开发板学习经典问答题集里面汇集了250道很多初学者在学习ARM开发板时长常遇见的一些问题,每个问题下面都附加了很准确的答案得。
  • 迅为iTOP-4412开发板-实战教程-ssh服务器移植到arm开发板
  • 粤嵌arm开发板2048小游戏c语言代码

    万次阅读 热门讨论 2017-04-29 15:42:00
    ARM开发板,即以英国ARM(Advanced RISC Machines)公司的内核芯片作为CPU,同时附加其他外围功能的嵌入式开发板,用以评估内核芯片的功能和研发各科技类企业的产品 。 2048游戏规则:每次可以选择上下左右其中一个...

    ARM开发板,即以英国ARM(Advanced RISC Machines)公司的内核芯片作为CPU,同时附加其他外围功能的嵌入式开发板,用以评估内核芯片的功能和研发各科技类企业的产品  。

    2048游戏规则:每次可以选择上下左右其中一个方向去滑动,每滑动一次,所有的数字方块都会往滑动的方向靠拢外,系统也会在空白的地方乱数出现一个数字方块,相同数字的方块在靠拢、相撞时会相加。不断的叠加最终拼凑出2048这个数字就算成功。

    粤嵌arm开发板2048小游戏c语言代码如下。

    #include <stdio.h>
    #include <sys/types.h>
    #include <sys/stat.h>
    #include <fcntl.h>
    #include <sys/mman.h>
    #include <linux/input.h>
    #include <math.h>
    
    #define UP 1
    #define DOWN 2
    #define LEFT 3
    #define RIGHT 4
    
    int *plcd = NULL;
    
    char *bmp_name[] = 
    {
    	"color_x80_2.bmp",
    	"color_x80_4.bmp",
    	"color_x80_8.bmp",
    	"color_x80_16.bmp",
    	"color_x80_32.bmp",
    	"color_x80_64.bmp",
    	"color_x80_128.bmp",
    	"color_x80_256.bmp",
    	"color_x80_512.bmp",
    	"color_x80_1024.bmp",
    	"color_x80_2048.bmp",
    	"color_x80_4096.bmp",
    	"color_x80_8192.bmp",
    	"color_x80_16384.bmp",
    	"color_x80_32768.bmp",
    	"color_x80_65536.bmp",
    	"color_x80_131072.bmp",
    	"color_x80_262144.bmp",
    	"color_x80_524288.bmp",
    };
    
    int matrix[4][4] = 
    {
    	0,0,0,0,
    	0,2,0,0,
    	0,0,0,0,
    	0,0,0,4,
    };
    //
    /*
    	@dis 在坐标为(x,y)画一个颜色为color的点
    	@x 横坐标
    	@y 纵坐标
    	@return void
    */
    void lcd_draw_point(int x, int y, int color)
    {
    	*(plcd + x + 800*y) = color;
    }
    
    //实现一个函数,在坐标为x0,y0的位置显示一个矩形,宽度为w,高度为h,颜色为color
    void lcd_draw_rect(int x0, int y0, int w, int h, int color)
    {
    	int x, y;
    	for (y = y0; y < y0+h; y++)
    	{
    		for (x = x0; x < x0+w; x++)
    			lcd_draw_point(x, y, color);
    	}
    }
    
    //在顶点为x0,y0画一个n*n的颜色矩阵,每个矩形的大小是w*w,//矩形和矩形之间的间隔为dis
    void lcd_draw_drect(int x0, int y0, int n, int w, int dis, int color)
    {
    	int i, j;
    	for (i = 0; i < n; i++)
    	{
    		for (j = 0; j < n; j++)
    			lcd_draw_rect(x0+(w+dis)*j, y0+(w+dis)*i, w,w, color);
    	}
    }
    
    //在坐标为(x0,y0)的位置显示一张100*100的bmp图片
    void lcd_draw_bmp(char *file, int x0, int y0)
    {
    	//打开bmp图片
    	int fd;
    	fd = open(file, O_RDWR);
    	if (-1 == fd)
    	{
    		printf("open %s error !\n", file);
    		return ;
    	}
    	
    	//读取bmp图片
    	char pixel[100*100*3 + 54];
    	read(fd, pixel, 100*100*3 + 54);
    	
    	int j = 0,x, y;
    	int color;
    	char r, g, b;
    	
    	for (y = 0; y < 100; y++)
    	{
    		for (x = 0; x < 100; x++)
    		{
    			b = pixel[54 + j];
    			j++;
    			g = pixel[54 + j];
    			j++;
    			r = pixel[54 + j];
    			j++;
    			color = (r << 16) | (g << 8) | b;
    			
    			lcd_draw_point(x+x0, 99-y+y0, color);
    		}
    	}
    	
    	close(fd);
    }
    
    char *get_filename_by_digit(int digit)
    {
    	int index;
    	switch (digit)
    	{
    		case 2:
    			index = 0;
    			break;
    		case 4:
    			index = 1;
    			break;
    		case 8:
    			index = 2;
    			break;
    		case 16:
    			index = 3;
    			break;
    		case 32:
    			index = 4;
    			break;
    		case 64:
    			index = 5;
    			break;
    		case 128:
    			index = 6;
    			break;
    		case 256:
    			index = 7;
    			break;
    		case 512:
    			index = 8;
    			break;
    		case 1024:
    			index = 9;
    			break;
    		case 2048:
    			index = 10;
    			break;
    		case 4096:
    			index = 11;
    			break;
    		case 8192:
    			index = 12;
    			break;
    		case 16384:
    			index = 13;
    			break;
    		case 32768:
    			index = 14;
    			break;
    		case 65536:
    			index = 15;
    			break;
    		case 131072:
    			index = 16;
    			break;
    		case 262144:
    			index = 17;
    			break;
    		case 524288:
    			index = 18;
    			break;
    		default:
    			index = 0;
    			break;
    	}
    
    	return bmp_name[index];
    }
    
    void lcd_draw_matrix()
    {
    	int i, j;
    	
    	for (i = 0 ; i < 4; i++)
    	{
    		for (j = 0; j < 4; j++)
    		{
    			if (matrix[i][j] == 0)
    			{
    				//画一个颜色矩形
    			//	void lcd_draw_rect(int x0, int y0, int //w, int h, int color)
    				lcd_draw_rect(20+ 120*j, 20+120*i,100, 100, 0x0000ff00);
    			}
    			else
    			{
    				//画一张对应数字的bmp图片
    			//	void lcd_draw_bmp(char *file, int x0, //int y0)
    				lcd_draw_bmp(get_filename_by_digit(matrix[i][j]),20+ 120*j, 20+120*i);
    			}
    		}
    	}
    }
    
    //获得手指的滑动方向
    int get_finger_move_direct()
    {
    	int fd;
    	int direct;
    	
    	fd = open("/dev/event0", O_RDWR);
    	//if (fd == -1)
    		
    	if (-1 == fd)
    	{
    		printf("open errror!\n");
    		return -1;
    	}
    	
    	struct input_event ev;
    	int x0 = -1, y0 = -1;
    	int x1, y1;
    	
    	while (1)
    	{
    		read(fd, &ev, sizeof(ev));
    		//识别当前的事件是不是触摸事件
    		if ((ev.type == EV_ABS) && (ev.code == ABS_X))
    		{
    			if (x0 == -1)
    				x0 = ev.value;
    			else 
    				x1 = ev.value;
    			printf("x: %d\n", x0);
    		}
    		else if ((ev.type == EV_ABS) && (ev.code == ABS_Y))
    		{
    			if (y0 == -1)
    				y0 = ev.value;
    			else
    				y1 = ev.value;
    			printf("y: %d\n", y0);
    		}	
    		
    		if ((ev.type == EV_ABS) && (ev.code == ABS_PRESSURE) && (ev.value == 0))
    		{
    			break;
    		}
    	}
    	
    	//判断手指滑动的方向了
    	int delta_x,delta_y;
    	
    	delta_x = abs(x1-x0);
    	delta_y = abs(y1-y0);
    	
    	if (delta_y > delta_x)
    	{
    		if (y1 > y0)
    		{
    			printf("up....\n");
    			direct = UP;
    		}
    		else 
    		{
    			printf("down ...\n");
    			direct = DOWN;
    		}
    	}
    	else
    	{
    		if (x1 > x0)
    		{
    			printf("right....\n");
    			direct = RIGHT;
    		}
    		else 
    		{
    			printf("left ...\n");
    			direct = LEFT;
    		}
    	}
    	
    	close(fd);
    	
    	return direct;
    }
    
    void handle_up()
    {
    	int i,j,k;
    	for(j=0;j<4;j++)
    	{
    		int flag=1;
    		for(i=1;i<4;i++)
    		{//移动点i,j 
    			for(k=i;k>=1;k--)//移动到的现在的位置 
    			if(matrix[k-1][j]||k==1)//此时停住
    			{
    				if(k==1&&matrix[k-1][j]==0)
    				{
    					matrix[k-1][j]=matrix[i][j];
    					matrix[i][j]=0;
    					continue;
    				}
    				if(matrix[i][j]==matrix[k-1][j]&&flag)
    				{
    					matrix[k-1][j]=2*matrix[i][j];
    					matrix[i][j]=0;
    					flag=0;
    				}
    				else
    				if(k!=i)//如果移动了 
    				{
    					matrix[k][j]=matrix[i][j];
    					matrix[i][j]=0;
    				}
    				break;
    			}
    		}
    	}
    }
    void handle_down()
    {
    	int i,j,k;
    	for(j=0;j<4;++j)
    	{
    	    int flag=1;
    		for(i=2;i>=0;--i)
    		{//移动点i,j 
    			
    			for(k=i;k<=2;++k)//移动到的现在的位置 
    			if(matrix[k+1][j]||k==2)//此时停住
    			{
    				if(k==2&&matrix[k+1][j]==0)
    				{
    					matrix[k+1][j]=matrix[i][j];
    					matrix[i][j]=0;
    					continue;
    				}
    				if(matrix[i][j]==matrix[k+1][j]&&flag)
    				{
    					matrix[k+1][j]=2*matrix[i][j];
    					matrix[i][j]=0;
    					flag=0;
    				}
    				else
    				if(k!=i)//如果移动了 
    				{
    					matrix[k][j]=matrix[i][j];
    					matrix[i][j]=0;
    				}
    				break;
    			}
    		}
    	}
    }
    void handle_left()
    {
    	int i,j,k;
    	for(i=0;i<4;++i)
    	{
    		int flag=1;
    		for(j=1;j<4;++j)
    		if(matrix[i][j])
    		{//移动点i,j 
    			for(k=j;k>=1;--k)//移动到的现在的位置
    			if(matrix[i][k-1]||k==1)//此时停住
    			{
    				if(k==1&&matrix[i][k-1]==0)
    				{
    					matrix[i][k-1]=matrix[i][j];
    					matrix[i][j]=0;
    					continue;
    				}
    				if(matrix[i][j]==matrix[i][k-1]&&flag)
    				{
    					matrix[i][k-1]=2*matrix[i][j];
    					matrix[i][j]=0;
    					flag=0;
    				}
    				else
    				if(k!=j)//如果移动了 
    				{
    					matrix[i][k]=matrix[i][j];
    					matrix[i][j]=0;
    				}
    				break;
    			}
    		}
    	}
    }
    void handle_right()
    {
    	int i,j,k;
    	for(j=2;j>=0;--j)
    	{
    		for(i=0;i<4;++i)
    		{//移动点i,j 
    			int flag=1;
    			for(k=j;k<=2;++k)//移动到的现在的位置
    			if(matrix[i][k+1]||k==2)//此时停住
    			{
    				if(k==2&&matrix[i][k+1]==0)
    				{
    					matrix[i][k+1]=matrix[i][j];
    					matrix[i][j]=0;
    					continue;
    				}
    				if(matrix[i][j]==matrix[i][k+1]&&flag)
    				{
    					matrix[i][k+1]=2*matrix[i][j];
    					matrix[i][j]=0;
    					flag=0;
    				}
    				else
    				if(k!=j)//如果移动了 
    				{
    					matrix[i][k]=matrix[i][j];
    					matrix[i][j]=0;
    				}
    				break;
    			}
    		}
    	}
    }
    void rand_digital()
    {
    	int n=0,i,j,num;
    	for(i=0;i<4;i++)
    	for(j=0;j<4;j++)
    	if(matrix[i][j]==0) n++;
    	if(!n) return;
    	num=rand()%n+1;
    	for(i=0;i<4;i++)
    	for(j=0;j<4;j++)
    	if(matrix[i][j]==0)
    	{
    		n--;
    		if(!n){
    			int t=rand()%2;
    			if(t==0)
    			matrix[i][j]=2;
    			else
    			matrix[i][j]=4;
    		}
    	}
    }
    int False()
    {
    	int i,j;
    	for(i=0;i<4;i++)
    	for(j=0;j<3;j++)
    	if(matrix[i][j]==0||matrix[i][j]==matrix[i][j+1]) return 0;
    	for(j=0;j<4;j++)
    	for(i=0;i<3;i++)
    	if(matrix[i][j]==0||matrix[i+1][j]==matrix[i][j]) return 0;
    	if(matrix[3][3]==0) return 0;
    	return 1;
    }
    void pfalse()
    {
    	lcd_draw_rect(0, 0, 800, 480, 0x0);
    	lcd_draw_bmp("false.bmp",200,200);
    }
    void handle(int direct)
    {
    	switch (direct)
    		{
    			case UP:
    				handle_up();
    				break;
    			case DOWN:
    				handle_down();
    				break;
    			case LEFT:
    				handle_left();
    				break;
    			case RIGHT:
    				handle_right();
    				break;
    		}
    }
    void My_2048()
    {
    	int direct;
    	while(1)
    	{
    		lcd_draw_matrix();
    		direct = get_finger_move_direct();
    		switch (direct)
    		{
    			case UP:
    				handle_up();
    				break;
    			case DOWN:
    				handle_down();
    				break;
    			case LEFT:
    				handle_left();
    				break;
    			case RIGHT:
    				handle_right();
    				break;
    		}
    		
    		handle(direct);
    		if(False())
    		{
    			pfalse();
    			return;
    		}
    		rand_digital();
    	}
    }
    int main(int argc, char *argv[])
    {
    	//打开lcd设备 /dev/fb0
    	//变量的命名规则:
    	//只能包含数字、字母和下划线,不能以数字开头
    	//见其名知其意,尽量别用拼音
    	int fd;
    	
    	fd = open("/dev/fb0", O_RDWR);
    	//if (fd == -1)
    		
    	if (-1 == fd)
    	{
    		printf("open errror!\n");
    		return 0;
    	}
    	
    	plcd = mmap(NULL, 800*480*4,
    					PROT_READ | PROT_WRITE,
    					MAP_SHARED,
    					fd,
    					0);
    	if (MAP_FAILED == plcd)
    	{
    		printf("mmap error !\n");
    		return 0;
    	}
    	#if 0
    	int i;
    	for (i = 0; i < 800*480;i++)
    		*(plcd + i) = 0x0000ff00;
    	#endif
    	
    	#if 0
    	int x, y, color;
    	color = 0x000000ff;
    	for (y = 0; y < 480; y++)
    	{
    		for (x = 0; x < 800; x++)
    			lcd_draw_point(x, y, color);
    	}
    	#endif
    	//在坐标为(200,200)的位置,显示一个100*100的颜色矩形,颜色为红色
    	#if 0
    	for (y = 200; y < 200+100; y++)
    	{
    		for (x = 200; x < 200 + 100; x++)
    			lcd_draw_point(x, y, color);
    	}
    	#endif
    	lcd_draw_rect(0, 0, 800, 480, 0x0);
    	
    	//void lcd_draw_drect(int x0, int y0, int n, int //w, int dis, int color)
    	//lcd_draw_drect(20, 20, 4, 100, 20, 0x0000ff00);
    	
    //	srand();
    //	rand();
    //	lcd_draw_bmp("digit_2.bmp", 50, 50);
    	
    	My_2048();
    	
    
    	
    	return 0;
    }

     

    相关文件下载https://ai.52learn.online/1494

    展开全文
  • OMAPL138 DSP+ARM开发板用户手册 包括 1-1-TL138_1808_6748-EVM开发板硬件说明书 1-2-TL138_1808_6748-EasyEVM开发板硬件说明书 1-3-TL138_1808_6748F-EasyEVM开发板硬件说明书 1-4-TL138_1808_6748-EthEVM开发板...
  • 基于arm 开发板实现得一个电子相册,不是很好,只是作为一个初学者用来玩玩的,需要代码或者互相交流的可以私聊我,有一些问题因为时间或其他原因未能解决
  • arm开发板裸机教程

    2012-02-10 15:15:07
    ok6410的裸机教程,主要有LED,AXD,GPIO等等,关于嵌入式arm开发板的教程
  • 蓝海微芯 LJD-2410DVK-II ARM开发板使用手册rar,蓝海微芯 LJD-2410DVK-II ARM开发板使用手册
  • ARM开发板LPC2138

    2010-09-20 21:25:09
    ARM开发板LPC2138,及附有程序,
  • ARM 开发板 QT 程序显示中文,带使用说明,可实现开发板 QT 程序显示中文!
  • 嵌入式linux在arm开发板上的移植 北京泰科威科技有限公司 嵌入式linux在arm开发板上的移植 linux在嵌入式设备上的应用越来越广泛非常多的嵌入式设备都开始由使用其它嵌入式OS向使用linux转变 随着嵌入式技术的发展...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,641
精华内容 4,656
关键字:

arm开发板