嵌入式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
//使用SSH2和SSH1协议
# 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板子的情况都不太一样,所以查资料的时候也花费了蛮久,但是最后解决了还是蛮开心的。
- 嵌入式lab1
- s3c2440嵌入式linux操作系统移植(lab1)
- Lab1
- Lab1
- lab1
- lab1
- lab1
- 嵌入式系统原理与设计---树莓派Lab1(初见树莓派)
- LAB1实验
- Lab1 SavingsBalance
- ucore lab1
- Lab1: MapReduce
- Lab1: 启动
- csapp - lab1
- ucore lab1
- ucore-Lab1
- ucore lab1
- na lab1 AC了......
- 【SQL】 sql中的日期比较
- HTTP连接管理
- 正弦波放大电路与移相电路设计
- Tensorflow: Linear Regression
- SDAU练习四 1003
- 嵌入式lab1
- pl/sql 运算符和表达式
- android事件分发(三)重要的函数requestDisallowInterceptTouchEvent
- java 实现单片机与PC串口通讯
- Cassandra 的 cql入门使用
- //毫米到英寸,单位换算
- 【Memcashed0】学习小结
- SDAU练习四 1003
- IDEA下创建Maven,Servlet,JSP,MYSQL项目