嵌入式lab1

嵌入式系统实验一

日期: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 0x5524c869
mx6q pll1: 792MHz
mx6q pll2: 528MHz
mx6q pll3: 480MHz
mx6q pll8: 50MHz
ipg clock     : 66000000Hz
ipg per clock : 66000000Hz
uart clock    : 80000000Hz
cspi clock    : 60000000Hz
ahb clock     : 132000000Hz
axi clock  : 264000000Hz
emi_slow clock: 132000000Hz
ddr clock     : 528000000Hz
usdhc1 clock  : 198000000Hz
usdhc2 clock  : 198000000Hz
usdhc3 clock  : 198000000Hz
usdhc4 clock  : 198000000Hz
nfc clock     : 24000000Hz
Board: i.MX6Q-SABRESD: unknown-boardBoard: 0x63012 [POR ]
Boot Device: MMC     //boot设备为MMC
I2C:  ready
DRAM:  1 GB     //内存大小
MMC:  FSL_USDHC: 0,FSL_USDHC: 1,FSL_USDHC: 2,FSL_USDHC: 3
In:   serial
Out:  serial
Err:  serial
config_ipu_di_clk: freq = 148500000.
wait for pll5 lock.
config_ipu_di_clk: set pll5 clock to297000000Hz.
Found PFUZE100! deviceid=10,revid=11
Net:  got MAC address from IIM: 00:00:00:00:00:00
FEC0 [PRIME]
Hit any key to stop autoboot:  0
mmc3(part 0) is current device
//读取MMC
MMC 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//内核镜像加载成功
OK
Starting 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 2014
CPU: 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
//机器型号为飞思卡尔MX
Memory policy: ECC disabled, Data cachewritealloc
//内存策略为非ECC的数据缓存写回
CPU identified as i.MX6Q, silicon rev 1.2
PERCPU: Embedded 7 pages/cpu @8c008000s5472 r8192 d15008 u32768
Built 1 zonelists in Zone order, mobilitygrouping on.  Total pages: 194560
Kernel 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=28M
PID hash table entries: 4096 (order: 2,16384 bytes)//PID哈希表项最多4096
Dentry 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 highmem
Virtual 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=1
Preemptible hierarchical RCUimplementation.
NR_IRQS:624
MXC GPIO hardware
sched_clock: 32 bits at 3000kHz,resolution 333ns, wraps every 1431655ms
arm_max_freq=1GHz
MXC_Early serial console at MMIO 0x2020000(options '115200')
bootconsole [ttymxc0] enabled
Console: colour dummy device 80x30
Calibrating delay loop... 1581.05 BogoMIPS(lpj=7905280)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok//CPU测试写一致性ok
hw perfevents: enabled with ARMv7Cortex-A9 PMU driver, 7 counters available
CPU1: Booted secondary processor
CPU2: Booted secondary processor
CPU3: Booted secondary processor
Brought up 4 CPUs
SMP: Total of 4 processors activated(6324.22 BogoMIPS).
print_constraints: dummy:
NET: Registered protocol family 16
******************此处行数太多省略******************
kjournald starting.  Commit interval 5 seconds
EXT3-fs (mmcblk0p1): using internaljournal
EXT3-fs (mmcblk0p1): mounted filesystemwith writeback data mode
VFS: Mounted root (ext3 filesystem) ondevice 179:1.
//虚拟文件系统挂载在ext3设备上
Freeing init memory: 216K
//释放内核未使用内存
ov5642_read_reg:write reg error:reg=300a
ov5640_read_reg:write reg error:reg=300a
ov5640_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
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值