NUC970BSP Linux 3.10.x配置相关
1 开发环境介绍
2 BSP安装2.1 系统需求
2.2 BSP相关库
2.3 BSP安装步骤
3 Linux内核配置3.1 内核设置界面
3.2 默认设置
3.3 LINUX内核设置
3.3.1 基本系统设置
3.3.2 网络功能设置
3.3.3 驱动配置
l Audio音频接口配置
I2S接口的配置如下:
I2S支持主模式或从模式,用户可根据需要选择两者之一。
选定I2S后,将同时选中NAU8822 codec驱动。另外,配置codec驱动时必须配置I2C接口驱动,系统才能正确加载NAU8822设备。
如果audio应用程序是使用旧的OSS架构编写的,需要配置下面两项,使ALSA兼容OSS架构。可参口音频演示程序alsa_audio。(源代码位于BSP/applications/demos/alsa_audio目录下)
l Cryptographic Accelerator配置
要支持Cryptographic Accelerator,前先配置Networking support里的PF_KEY socket。
然后再打开Cryptographic API里面的相关设定
NUC970 Cryptographic Accelerator硬件支持AES、DES及3-DES crypto加密算法,以及支持SHA及HMAC hash算法,可参考Demo程序crypto。(代码位于BSP/applications/demos/crypto目录下)
l DMA配置
NUC970系列芯片支持DMA功能。要在内核中使能DMA,需进入“DMA Engine support”菜单,配置“NUC970 DMA support”。
如果需要在内核中使用DMA,请参照linux-3.10.x/drivers/dma/dmatest.c中的使用方法,如果需要实际了解dmatest.c的运作流程,可开启“DMA Test Client”。DMA test client将会被自行带起来。
l Ethernet网口配置
NUC970系列支持两个网口,可分别开启或同时开启。要支持网口除了网口驱动外,PHY驱动也需要配置。NUC970开发板上使用的是ICPlus的PHY,若是使用其它的PHY,请配置相应的PHY驱动。
l Etimer配置
NUC970内核执行时,使用基本时钟来计时。另外还提供了四通道的加强型时钟,可输入50%占空比的输出或是支持捕获功能。四个通道可独立控制,以下是相关的配置界面,不使用的可配置成“No output”或“No input”。下图是把通道0和1配置成分别使用PC.6、PC.8输出,通道2和通道3配置成使用PC.11和PC.13作为捕获管脚的例子。
应用程序可使用ioctrl()来控制Etimer的功能,目前支持了toggle out、trigger counting mode及free counting mode等三个功能。在捕获模式下(trigger counting mode及free counting mode),所捕获到的值可由read()读回(单位是us),代表了两次触发条件的间隔。不论是toggle out或是捕获模式单位均为us。可参考BSP中的demo程序(源码位于BSP/applications/demos/etimer)来开发所需要的功能。
l GPIO配置
NUC970系列芯片支持GPIO控制接口,要让内核支持GPIO控制,需配置“NUC970 GPIO support”及“/sys/class/gpio/…”。
GPIO驱动程序将NUC970系列芯片的GPIO口从GPIOA~GPIOJ每组都保留32个号码,所以GPIOA编号0x000~0x01F,GPIOB编号0x020~0x03F,GPIOC编号0x040~0x05F,GPIOD编号0x060~0x07F,GPIOE编号0x080~0x09F,GPIOF编号0x0A0~0x0BF,GPIOG编号0x0C0~0x0DF,GPIOH编号0x0E0~0x0FF,GPIOI编号0x100~0x11F,GPIOJ编号0x120~0x13F。
用户可通过sysfs接口来控制各GPIO。“/sys/class/gpio/…”是通用的GPIO控制接口,可以通过下面的方法来控制GPIO:
l /sys/class/gpio/export:打开某个GPIO
l /sys/class/gpio/unexport:关闭某个GPIO
l /sys/class/gpio/gpio0/direction:控制GPIOA00的方向in或out
l /sys/class/gpio/gpio0/value:控制GPIOA00的输出值1或0
下面是设定GPIOA0输出High的例子:
也可以参考demo程序gpio_demo(源码位于BSP/applications/demos/gpio目录)
在其他的驱动程序中可以通过下列步骤来控制GPIO:
l 在驱动程序中加入#include
l 依据archarmmach-nuc970includemachgpio.h决定使用哪个GPIO
l 以NUC970_PC7为例,具体控制如下:
设定输入模式:gpio_direction_input(NUC970_PC7)
设定输出模式和输出值:gpio_direction_output(NUC970_PC7,1)
设定输出high:gpio_set_value(NUC970_PC7,1)
设定输出low:gpio_set_value(NUC970_PC7,0)
取值:gpio_get_value(NUC970_PC7)
确认GPIO是否正在使用:gpio_request(NUC970_PC7,”NUC970_PC7”)
获取GPIO中断号码:gpio_to_irq(NUC970_PC7)
使用GPIO中断的例子:
l 配置GPIO模拟I2C接口
除了使用硬件I2C,还可使用GPIO来模拟实现I2C,通过修改arch/arm/mach-nuc970/dev.c中i2c_gpio_adpater_data结构来选择使用的管脚。如设定
.sda_pin=NUC970_PG1,
.scl_pin = NUC970_PG0
即时是使用PG0为SCL,使用PG1为SDA。
l I2C接口配置
I2C接口配置如下:
I2C Port 1有多组管脚供选择,如Port-B、Port-G、Port-H或者Port-I
选择硬件I2C,系统将使用NUC970内建的I2C控制器进行I2C的控制
I2C port0 上挂载了5个设备,分别是OV7725、OV5640、NT99050、NT99141及NAU8822,用户可自行修改、新增设备或将设备修改至port1上,只要修改文件arch/arm/mach-nuc970/dev.c中的nuc970_i2c_clients0结构。
|
clip_image080_thumb-1.jpg (35.36 KB, 下载次数: 1)
clip_image078_thumb-1.jpg (90.08 KB, 下载次数: 0)
clip_image076_thumb-1.jpg (82.74 KB, 下载次数: 1)
clip_image074_thumb-1.jpg (8.77 KB, 下载次数: 1)
clip_image072_thumb-1.jpg (40.15 KB, 下载次数: 1)
clip_image070_thumb-1.jpg (33.07 KB, 下载次数: 0)
clip_image068_thumb-1.jpg (9.57 KB, 下载次数: 1)
clip_image066_thumb-1.jpg (25.6 KB, 下载次数: 0)
clip_image064_thumb-1.jpg (50.53 KB, 下载次数: 1)
clip_image062_thumb-1.jpg (40.95 KB, 下载次数: 0)
clip_image060_thumb-1.jpg (65.6 KB, 下载次数: 1)
clip_image058_thumb.jpg (8.17 KB, 下载次数: 2)
clip_image056_thumb.jpg (13.58 KB, 下载次数: 2)
clip_image054_thumb.jpg (38.89 KB, 下载次数: 1)
clip_image052_thumb-1.jpg (48.43 KB, 下载次数: 0)
clip_image050_thumb-1.jpg (63.31 KB, 下载次数: 1)
clip_image048_thumb-1.jpg (89.63 KB, 下载次数: 1)
clip_image046_thumb-2.jpg (28.17 KB, 下载次数: 1)
clip_image044_thumb-2.jpg (57.04 KB, 下载次数: 0)
l LCD接口配置
要支持LCD屏,需配置内核下列选项:
在开发板上已接有800×480 的5寸LCD屏,使用18bit的数据线与屏连接,颜色数为RGB888(24-bit)
如果要将Linux的企鹅logo在屏上显示出来,则需配置下列选项:
这样开机时,就可在屏上看到Linux的企鹅logo。
可参考demo程序lcm,了解如可操作frame buffer。(源码位于BSP/applications/demos/lcm目录)
l MTD NAND flash配置
NAND flash的驱动是挂载在MTD子系统之下的,配置如下。NAND flash接口有两组管脚可选:Port C、Port I,需根据硬件连接情况来选择。
驱动中的基本设置如果需要由U-boot环境参数传入就必须将“Command line partition table parsing”选上,否则就使用驱动程序里的默认配置,将MTD分为三个分区。上电进入shell后,分别是/dev/mtdblock0、/dev/mtdblock1及/dev/mtdblock2。第一块是放置U-Boot的空间,第二块放置内核文件,第三块是用来挂载YAFFS2或UBIFS文件系统的空间。若是配置有需要更改,例如增加或减少分区、修改分区大小,请直接编辑uboot/include/nuc970_evb.h或drivers/mtd/nand/nuc970_nand.c
l PWM配置
NUC970 BSP中的内核版本为3.10,但3.10的PWM驱动程序不支持用户程序通过sysfs接口控制PWM,所以目前的PWM子系统是另外由3.11移植回3.10的,方便用户程序控制PWM。
要支持PWM,请配置下面的选项,使用的管脚可根据硬件修改,不使用的通道配置成“No output”即可。
要通过sysfs控制PWM,首先在系统开机后,进入/sys/class/pwm/,可看到四个PWM(pwmchip0~3),每组代表着一个PWM通道。要使用前,需要进入要控制的通道目录执行echo 0 >export,此时会生成一个pwm0目录,这样就可以开始控制这个通道了。在新生成的目录中有几个文件可用来控制PWM,下面列出来这些文件:
l period:控制周期,单位ns。目前驱动支持最小单位是us,以打出20us周期波为例:echo 20000>period
l duty_cycle:设置占空比。单位ns。打出15us
l polarity:设置输出相位。Set Active high:echo 1 > polarity或Set Active low:echo 0 > polarity
l enable:使能禁止控制。使能:echo 1 > enable;禁止:echo 0 > enable。
下面就是一个开启PWM0,并输出周期为30us,占空比为33%的例子:
l Ralink RT3070 802.11 WiFi支持
要支持RT3070 USB WiFi功能的话,除了使能无线网络功能、USB host驱动、模块加载支持外,还要开启下面的设置:
并且在boot command加上以下命令:
RT3070的驱动并没有放在内核源码之中,而是单独放在
BSP/applications/DPO_RT3070_LinuxSTA_V2.3.0.2_20100412/ 目录下。所以编译产生的是内核模块,需要动态加载。
编译时先修改目录下的Makefile,设定正确的内核源码路径,而后输入make命令进行编译。
编译完成后,产生驱动模块rt3070sta.ko。本驱动使用时,除了将本驱动模块放到文件系统中外,还要将RT2870STA.dat复制到根文件系统的etc/Wireless/RT2870STA/ 目录下。
该驱动的使用说明:
1) 加载驱动模块:insmod rt3070sta.ko
2) 启动无线网口:ifconfig ra0 up
3) 使用BSP中的wireless_tool.29版本连接到无线网
使用WEP方式连接的命令:
使用WPAPSK方式连接的命令:
使用WPA2PSK方式连接的命令:
4) 连线成功后,设置固定IP或使用DHCP获取动态IP。DHCP的命令如下:
|
||
3.3.6 Touch Screen与tslib设置
当使用touch screen时,可以通过tslib 1.1来校正touch screen。 在applications.tar.gz解压缩后,进入tslib-1.1目录执行下列步骤: 1.编译tslib-1.1 #./configure –prefix=$(pwd)/install –enable-static –enable-shared –host= arm-linux #make #make install 2.将$(pwd)/install中所有文件复制到$(rootfs)目录下 3.修改$(rootfs)/etc/profile并增加下列几行。 4.修改$(rootfs)/etc/ts.conf 5. 执行ts_calibrate校准程序,根据屏的指示点击屏幕,对触摸屏进行校准。完成校准后,执行ts_test测试程序,即可去测试触摸屏。如果测试触摸效果不好(无法点选特定的地方或画线有很大的偏差),建议再执行一次校正程序。 6. 执行ts_test,得到如下图显示: # ts_test 3.4 LINUX内核编译 内核设置完成后,在linux-3.10.x目录下执行“make”命令,即可编译内核。若编译通过,则产生内核镜像文件及使用zip压缩的内核镜像文件,它们会被放到源码的上一层的image目录中。 4 Linux用户程序4.1 演示程序 NUC970 BSP在applications中提供了一些演示程序,下面介绍这些演示程序及其内容。 1.alsa-utils-1.0.23: ALSA命令工具 l 交叉编译命令如下: $./configure –host=arm-linux –disable-nls –disable-nls –disable-xmlto CPPFLAGS= -I/usr/local/arm_linux_4.3/usr/include/ncurses LDFLAGS= -L/usr/local/arm_linux_4.3/usr/lib l 播放混音设定 $./amixer set PCM 85% $./amixer set Headphone 90% l 录音混音设定 MIC录音设置 $./amixer set “Mic Bias” on $./amixer set “Input PGA” 100% $./amixer set ADC 90% Line In录音 $./amixer set “Right Input Mixer R2” on $./amixer set “Left Input Mixer L2” on $./amixer set “L2/R2 Boost” 100% $./amixer set ADC 90% l 播放的命令 $./aplay 如要播放BSP内的音乐示例文件,命令如下: $cd usr $./aplay -c 2 -f S16_LE alsa/8k2ch.pcm l 录音的命令: $./arecord -d 10 -f S16_LE -c2 -r8000 -t wav -D plughw:0,0 l 同时录放的命令 $./arecord -f S16_LE -r 8000 -c 2 -D plughw:0,0 | ./aplay 2. Benchmark/netperf-2.6.0 网络性能测试工具 交叉编译命令:$./configure -host=arm-linux 3. Busybox-1.22.1/ busybox源码 交叉编译命令: $ make menuconfig Select applets to be build $ make 4. demos程序 demos/alsa_audio 音乐示例程序 demos/cap 图像获取示例程序 demos/crypto 加密解密示例程序 demos/etimer 增强型定时器示例程序 demos/gpio GPIO示例程序 demos/irda 红外演示程序 demos/lcm/ lcd演示程序 demos/thread 线程演示程序 demos/rtc RTC演示程序 demos/uart uart演示程序 demos/wdt 看门狗演示程序 demos/wwdt 窗口看门狗演示程序 5. DPO_RT3070_LinuxSTA_V2.3.0.2_20100412 RT3070无线dongle开源驱动程序 6. 工具软件 l wireless_tools.29 WiFi设定工具包,包含了iwconfig,iwlist,iwpriv等工具 l Tslib-1.1 touch screen库,含校正及测试程序 l yaffs2utils.tar.gz yaffs2工具 $make l lzo-2.09.tar.gz 压缩/解压缩工具 交叉编译命令如下: $cd lizo-2.09 $./configure –host = arm-linux –prefix = $PWD/../install $make $make install l libuuid-1.0.3.tar.gz 产生唯一序号工具 交叉编译命令如下: $cd libuuid-1.0.3 $./configure –host=arm-linux –prefix=$PWD/../install $make $make install l mtd-utils.tar.gz mtd-utils源码 交叉编译命令如下: 需要使用到lzo-2.09.tar.gz套件和libuuid-1.0.3.tar.gz套件 $cd mtd-utils $export CROSS=arm-linux- $export WITHOUT_XATTR=1 $export DESTDR=$PWD/../install $export LZOCPPFLAGS= -I/home/install/include $export LZOLDFLAGS= – L/home/install/lib $make $make install 7. QT编译 qt-everywhere-opensource-src-4.8.5: QT gui 源码 如果有使用tslib来支持触摸屏,请先修改如下文件 mkspecs/qws/linux-nuc970-g++/qmake.conf 指定QMAKE_INCDIR及QMAKE_LIBDIR,如下: QMAKE_INCDIR = path to /tslib-1.1/install/include QMAKE_LIBDIR = path to /tslib-1.1/install/lib l 设定环境变量 $ export MY_CC_QT4_PREFIX=/usr/local/Trolltech/QtEmbedded-4.8.5 l 配置 $./configure -prefix ${MY_CC_QT4_PREFIX} -release -opensource -static -qconfig dist -no-exceptions -no-accessibility -no-stl -no-qt3support -no-xmlpatterns -no-multimedia -no-audio-backend -no-phonon -no-phonon-backend -no-svg -no-webkit -no-javascript-jit -no-script -no-scripttools -no-declarative -no-declarative-debug -qt-zlib -qt-freetype -no-gif -qt-libpng -no-libmng -no-libtiff -qt-libjpeg -no-openssl -nomake tools -nomake demos -nomake examples -nomake docs -nomake translations -no-nis -no-cups -no-iconv -no-pch -no-dbus -embedded arm -platform qws/linux-x86-g++ -xplatform qws/linux-nuc970-g++ -no-gtkstyle -no-nas-sound -no-opengl -no-openvg -no-sm -no-xshape -no-xvideo -no-xsync -no-xinerama -no-xcursor -no-xfixes -no-xrandr -no-xrender -no-mitshm -no-fontconfig -no-xinput -no-xkb -no-glib -qt-gfx-linuxfb -qt-mouse-tslib -qt-kbd-linuxinput l 编译QT: $make l 编译QT程序 $ cd /path/to/qt-everywhere-opensource-src-4.8.5/examples/dialogs/trivialwizard $ ../../../bin/qmake $ make l 运行QT程序 复制trivialwizard 到系统可以存取到的地方。 设定tslib环境参数 $ export QWS_MOUSE_PROTO=Tslib:/dev/input/event0 执行 $trivialwizard -qws |
4.2 交叉编译
原文来自:https://bbs.21ic.com/icview-2408450-1-1.html
NUC970BSP Linux 3.10.x配置相关相关推荐
- 想学linux需要的电脑配置相关
开始学linux了,加油!!! 我是跟着正点原子的视频学的,左神第一期讲--做linux开发需要的电脑配置 左神自己的配置以及他推荐的配置如下: CPU 性能越强越好,cpu的核越多越好 内存 推荐1 ...
- linux 网络设备,网卡配置 ,相关
网络设备,网卡配置: Eth0是物理网卡:唯一mac地址,Bcast:广播地址,MAsk:子网掩码, Lo:系统自带的回环的ip地址,可以做一些基本的测试应用,比如没有网卡就用127.0.0.1,ro ...
- 服务器防火墙,linux下iptables防火墙配置相关
iptables防火墙 iptables常用命令 iptables配置文件`/etc/sysconfig/iptables` iptables服务命令 -- 启动服务 -- 停止服务 -- 重启服务 ...
- Linux网络属性配置相关命令
Linux网络属性配置相关命令: 前言: Linux属性配置可以分为两类.一类通过命令配置,另一类通过修改配置文件配置. Linux属性配置的相关命令可以分为三大类: 一.ifcfg命令家族:①ifc ...
- Linux基础命令-网络配置和相关命令
Linux基础命令-网络配置和相关命令 网络配置和相关命令 一.基本网络配置 二.网卡名称 1. 网卡别名 2. 设备别名 3. 实验 三.网络配置方式 1. ifconfig命令 2. route命 ...
- linux环境下和网络服务相关的配置文件含义及如何配置
要建立一个安全Linux服务器就首先要了解Linux环境下和网络服务相关的配置文件的含义及如何进行安全的配置.那天查看服务器的eth0地址,后来想了一些问题,到家里就翻了翻以前的文档,无意中看到了这个 ...
- SAP PM 初级系列10 - 维护通知单相关的配置
SAP PM 初级系列10 - 维护通知单相关的配置 1,定义维护通知单类型 2,定义维护通知单的编号范围 3,Allowed Change of Notification Type 这里定义哪种类型 ...
- Linux下DHCP服务的配置相关参数说明
Linux下DHCP服务的配置相关参数说明 DHCP配置通常包括三部分:parameters.declarations.option. 1. parameters parameters用于说明DHCP ...
- Linux查询网络配置相关命令
Linux查询网络配置相关命令 查看网络接口信息 ifconfig:查看系统所有网络接口相关信息 ifconfig -s:查看所占内存 查看及修改主机名 hostname:查看主机名称 hostnam ...
最新文章
- c语言程序中变量先引用声明,C语言如何跨文件调用函数定义中声明的变量
- [概统]本科二年级 概率论与数理统计 第八讲 大数定律与中心极限定理
- 【计网】计网----子网掩码,网关,ARP协议的作用
- Magento 1.9.2 Unknown cipher in list: TLSv1
- K8S_Google工作笔记0006---通过kubeadm方式_部署master节点
- ubuntu 18.04 卸载 mysql 过程记录
- 计算机单机管理软件,小财迷电脑收银系统(收银记账软件) 单机版
- oracle中between函数用法,Oracle常用函数使用介绍
- 如何彻底删除adobe?adobe官方清理工具怎么用?
- 单页面网站的优化方法大全
- Tensorflow.keras小案例Mnist数字识别
- 六十甲子亡命安葬山向宜忌
- 设计模式—策略模式(Strategy Pattern)
- 志愿者服务系统php,志愿者服务系统
- ImageView中动态设置图片
- 东北大学专业 计算机专业英语教材,东北大学非英语专业硕士生用的哪套英语教材。求赐教!...
- 自从上了K8S,项目更新都不带停机的!
- PTA-基础编程题目集-7-1 厘米换算英尺英寸
- 移动联通电信DTU 透传DTU 无线远距离传输
- PT927G光猫获取超管+删除tr069教程