嵌入式lab1

来源:互联网 发布:php购物网站源码mysql 编辑:程序博客网 时间:2024/05/22 08:19

嵌入式系统实验一

日期:2016-3-19

一、实验目的

1.了解嵌入式板卡一般情况;

2.熟悉pcDuino的供电等接线方式;

3.复习Linux启动过程(操作系统课);

4.复习通过Linux获得硬件数据(操作系统课)

5.熟练掌握串口在PC上的使用;

6.熟练掌握Linux的以太网和WiFi配置;

7.熟练掌握Linux的SSH配置;

8.熟练掌握PC上的SSH软件。

9.掌握嵌入式板卡和PC建立文件共享的方式;

10.寻找和安装交叉编译环境,理解交叉编译;

11.熟悉嵌入式板卡的Linux下的编程环境;

12.了解远程访问嵌入式板卡图形桌面的方式。

二、实验器材

硬件

•实验主板一块;

•5V/1A电源一个;

•microUSB线一根;

•USB-TTL串口线一根(FT232RL芯片或PL2303芯片)。

以下为自备(可选)器材:

•PC(Windows/Mac OS/Linux)一台;

•以太网线一根(可能还需要路由器等);

•HDMI显示器;

•HDMI线;

•USB键盘/鼠标(无线);

•USB Hub,推荐自带供电的类型。

软件

•PC上的USB-TTL串口线配套的驱动程序;

•PC上的串口终端软件,如minicom、picocom、putty等;

•PC上的SSH软件,如putty等。

•交叉编译软件

三、实验步骤

1.  画出你所实际实施的连接示意图;


1.  给出实际拍摄的板卡连接照片;


1.  在PC上安装好USB串口驱动和串口终端软件;

2.  给出拷贝得到的pcDuino启动时的输出文字,并逐行解释;


U-Boot 2009.08 (Dec 25 2014 - 21:37:33)//启动时间CPU: Freescale i.MX6 family TO1.2 at 792MHz //CPU芯片型号和频率Thermal sensor with ratio = 175  //传感器比热率Temperature:   30 C, calibration data 0x5524c869mx6q pll1: 792MHzmx6q pll2: 528MHzmx6q pll3: 480MHzmx6q pll8: 50MHzipg clock     : 66000000Hzipg per clock : 66000000Hzuart clock    : 80000000Hzcspi clock    : 60000000Hzahb clock     : 132000000Hzaxi clock  : 264000000Hzemi_slow clock: 132000000Hzddr clock     : 528000000Hzusdhc1 clock  : 198000000Hzusdhc2 clock  : 198000000Hzusdhc3 clock  : 198000000Hzusdhc4 clock  : 198000000Hznfc clock     : 24000000HzBoard: i.MX6Q-SABRESD: unknown-boardBoard: 0x63012 [POR ]Boot Device: MMC     //boot设备为MMCI2C:  readyDRAM:  1 GB     //内存大小MMC:  FSL_USDHC: 0,FSL_USDHC: 1,FSL_USDHC: 2,FSL_USDHC: 3In:   serialOut:  serialErr:  serialconfig_ipu_di_clk: freq = 148500000.wait for pll5 lock.config_ipu_di_clk: set pll5 clock to297000000Hz.Found PFUZE100! deviceid=10,revid=11Net:  got MAC address from IIM: 00:00:00:00:00:00FEC0 [PRIME]Hit any key to stop autoboot:  0mmc3(part 0) is current device//读取MMCMMC read: dev # 3, block # 2048, count10240 ... 10240 blocks read: OK## Booting kernel from Legacy Image at10800000 ...//linux镜像参数  Image Name:  Linux-3.0.35-2666-gbdde708//内核镜像名  Image Type:   ARM Linux KernelImage (uncompressed)//镜像类型  Data Size:    4422312 Bytes =  4.2 MB//数据大小  Load Address: 10008000//数据加载地址  Entry Point:  10008000//入口点  Verifying Checksum ... OK  Loading Kernel Image ... OK//内核镜像加载成功OKStarting kernel ... //启动内核Uncompressing Linux... done, booting thekernel.Linux version 3.0.35-2666-gbdde708(root@ubuntu) (gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) ) #218 SMPPREEMPT Thu Dec 18 22:32:36 PST 2014CPU: ARMv7 Processor [412fc09a] revision10 (ARMv7), cr=10c53c7d//CPU型号为ARMv7兼容的ARMv10处理器CPU: VIPT nonaliasing data cache, VIPTaliasing instruction cache//CPU采用VIPT的非对齐数据缓存和对齐指令缓存Machine: Freescale i.MX 6Quad/DualLite/SoloSabre-SD Board//机器型号为飞思卡尔MXMemory policy: ECC disabled, Data cachewritealloc//内存策略为非ECC的数据缓存写回CPU identified as i.MX6Q, silicon rev 1.2PERCPU: Embedded 7 pages/cpu @8c008000s5472 r8192 d15008 u32768Built 1 zonelists in Zone order, mobilitygrouping on.  Total pages: 194560Kernel command line:console=ttymxc0,115200 root=/dev/mmcblk0p1 rootwait fec_mac=4c:53:0e:22:69:d4video=mxcfb0:dev=hdmi,1920x1080M@60,if=RGB24,bpp=32 fbmem=28MPID hash table entries: 4096 (order: 2,16384 bytes)//PID哈希表项最多4096Dentry cache hash table entries: 131072(order: 7, 524288 bytes)Inode-cache hash table entries: 65536(order: 6, 262144 bytes)Memory: 512MB 256MB = 768MB total//内存大小Memory: 764648k/764648k available, 283928kreserved, 0K highmemVirtual kernel memory layout://虚拟内存布局   vector  : 0xffff0000 -0xffff1000   (   4 kB)   fixmap  : 0xfff00000 -0xfffe0000   ( 896 kB)   DMA     : 0xf4600000 -0xffe00000   ( 184 MB)   vmalloc : 0xc0800000 - 0xf2000000  ( 792 MB)   lowmem  : 0x80000000 -0xc0000000   (1024 MB)   pkmap   : 0x7fe00000 -0x80000000   (   2 MB)   modules : 0x7f000000 - 0x7fe00000  (  14 MB)     .init : 0x80008000 - 0x8003e000  ( 216 kB)     .text : 0x8003e000 - 0x80b93ca8  (11608 kB)     .data : 0x80b94000 - 0x80bff600  ( 430 kB)      .bss : 0x80bff624 - 0x80c58d0c   (358 kB)SLUB: Genslabs=13, HWalign=32, Order=0-3,MinObjects=0, CPUs=4, Nodes=1Preemptible hierarchical RCUimplementation.NR_IRQS:624MXC GPIO hardwaresched_clock: 32 bits at 3000kHz,resolution 333ns, wraps every 1431655msarm_max_freq=1GHzMXC_Early serial console at MMIO 0x2020000(options '115200')bootconsole [ttymxc0] enabledConsole: colour dummy device 80x30Calibrating delay loop... 1581.05 BogoMIPS(lpj=7905280)pid_max: default: 32768 minimum: 301Mount-cache hash table entries: 512CPU: Testing write buffer coherency: ok//CPU测试写一致性okhw perfevents: enabled with ARMv7Cortex-A9 PMU driver, 7 counters availableCPU1: Booted secondary processorCPU2: Booted secondary processorCPU3: Booted secondary processorBrought up 4 CPUsSMP: Total of 4 processors activated(6324.22 BogoMIPS).print_constraints: dummy:NET: Registered protocol family 16******************此处行数太多省略******************kjournald starting.  Commit interval 5 secondsEXT3-fs (mmcblk0p1): using internaljournalEXT3-fs (mmcblk0p1): mounted filesystemwith writeback data modeVFS: Mounted root (ext3 filesystem) ondevice 179:1.//虚拟文件系统挂载在ext3设备上Freeing init memory: 216K//释放内核未使用内存ov5642_read_reg:write reg error:reg=300aov5640_read_reg:write reg error:reg=300aov5640_read_reg:write reg error:reg=300a Last login: Thu Jan  1 08:00:05 CST 1970 on tty1//上一次登陆时间Welcome to Linaro 12.11 (GNU/Linux3.0.35-2666-gbdde708 armv7l)  *Documentation:  https://wiki.linaro.org/


3.  如何通过Linux获得硬件数据,截屏给出获得的硬件数据,如CPU型号、时钟频率、内存大小等;

时钟信号在启动文字那里。

4.  给出你的网络配置参数,截屏给出从pcDuino和PC两端得到的网络已连接的证明;

网络配置参数:


从pcduino证明网络已连接:成功Ping百度


从pc端证明板子网络已连接:cmd中ping pcduino的内网ip地址


5.  给出你的SSH配置文件,并解释其中内容;


Host *

//选项“Host”只对能够匹配后面字串的计算机有效。“*”表示所有的计算机

#   ForwardAgent no

//设置连接是否经过验证代理(如果存在)转发给远程计算机

#   ForwardX11 no

//设置X11连接是否被自动重定向到安全的通道和显示集(DISPLAY set

#   ForwardX11Trusted yes

//设置X11连接是否被自动重定向到安全的通道和显示集(DISPLAY set)。

#   RhostsRSAAuthentication no

//设置是否使用用RSA算法的基于rhosts的安全验证。

#   RSAAuthentication yes

//设置是否使用RSA算法进行安全验证。

#   PasswordAuthentication yes
//设置是否使用口令验证。

#   HostbasedAuthentication no

//是否在HostbasedAuthentication过程中忽略用户的 ~/.ssh/known_hosts文件。默认值是"no"。为了提高安全性,可以设为"yes"

#   GSSAPIAuthentication no

//是否允许使用基于 GSSAPI的用户认证

#   GSSAPIDelegateCredentials no

#   GSSAPIKeyExchange no

#   GSSAPITrustDNS no

#   BatchMode no

//如果设为“yes”,passphrase/password(交互式输入口令)的提示将被禁止。当不能交互式输入口令的时候,这个选项对脚本文件和批处理任务十分有用

#   CheckHostIP yes

//设置ssh是否查看连接到服务器的主机的IP地址以防止DNS欺骗。建议设置为“yes

#   StrictHostKeyChecking ask

//如果设置成“yes”,ssh就不会自动把计算机的密匙加入“$HOME/.ssh/known_hosts”文件,并且一旦计算机的密匙发生了变化,就拒绝连接。

#   IdentityFile ~/.ssh/identity

//设置从哪个文件读取用户的RSA安全验证标识

#   IdentityFile ~/.ssh/id_rsa

#   IdentityFile ~/.ssh/id_dsa

#   Port 22

//设置连接到远程主机的端口。

#   Protocol 2,1

//使用SSH2SSH1协议

#   MACs hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-ripemd160

#   EscapeChar ~

//设置escape字符

#   Tunnel no

//是否允许使用基于密码的认证

#   GSSAPIDelegateCredentials no

//Gssapi认证

 

6.  存在多个登陆时,如何看到不同端口的登陆,给出截屏结果;




Write通信

ssh的终端输入:writeroot tty1

再输入hello

PC 上的 serial 终端会收到 hello

7.  给出嵌入式板卡上的SAMBA配置文件内容,并逐行解释;

/*全局配置*/

[global]

workgroup = mabin                //类似于在Windows中显示的工作组名称

netbios name = mabin-samba           //被netbios解析出来的计算机名

server string = sambatestserver       //服务器说明

security = share           //security是登录和验证方式,设置为share可以匿名访问;而如果是user这种验证方式的话,就需要用户名和密码

[share]                   //在Windows中显示出来的共享目录名

path = /var/samba                     //共享目录的路径

writeable = yes                      //是否可写

browseable = yes                     //是否可浏览

guest ok = yes                     //设置匿名用户以guest身份登录

 

8.  给出用各种方式传递文件的过程,并从易用性、速度、安全等方面做比较;

Samb:



在window中的share文件夹中加入samb.test,可以发现在linux中多出来了这个文件,说明文件传输成功。

sftp:

然后就可以用sftp命令在pc和acadia之间传递文件了。

 

SAMBA

Sftp

易用性

较为简便,但是只能针对特定文件夹

简便

速度

较慢

较快

安全

基于SSL协议加密samba传输数据保证安全但相比来看安全性还是有差距

Secure File Transfer Protocol的缩写,安全文件传送协议。可以为传输文件提供一种安全的加密方法

 

9.  给出你所选择的交叉编译环境的情况:来源、安装过程等;

因为在windows中交叉编译的软件包比较难找,所以这一步转到linux系统里做了。

然后把a.out通过samb共享到acadia板子上:


10.给出交叉编译的程序的情况,并证明它是ARM/MIPS的可执行文件;

在acadia上交叉编译成功:

但在linux系统中运行的话就会提示是二进制arm文件,证明是可执行文件

11.给出嵌入式板卡本机开发环境的情况,给出一或两种语言编程的例子和结果;

Java:

C:

12.给出你尝试的远程图形桌面的方式:嵌入式板卡端的配置方法,PC端软件的获得,使用结果截屏等。

①在acadia中配置和启动xllvnc:



②在windows中启动vnc-viewer,输入ip和密码登陆:


四、实验感想

通过这一次的实验,熟悉了acadia的一些基本操作,因为是第一次接触,所以这一次的实验过程中还是遇到了很多问题,比如无线网络的共享还有文件传递交叉编译等。一开始只能ping内网,后来发现是域名解析服务器配置有问题,在resolv.conf中添加自己对应的DNS才成功,Apt-get install vsftbd的时候报错找不到/mnt/uImage,所以最后是手动建立了一个软链接才成功,然后apt-getupdate的时候也换了很多个源才成功,主要是网上的资料基本上都没有找到专门关于acadia的,各种pcduino板子的情况都不太一样,所以查资料的时候也花费了蛮久,但是最后解决了还是蛮开心的。


0 0
原创粉丝点击