迅为iTOP-4418开发板串口虚拟控制台配置为普通串口
如何将 iTOP-4418 的串口控制台配置为普通串口。在最终的产品中,如果需要额外的串口,可以将调试用的控制台串口作为普通串口使用,因为交付给最终用户手中的产品,一般不需要调试串口。屏蔽串口控制台需要做内核和文件系统的控制台屏蔽。注意:本文档中的 uboot 配置,也是为了屏蔽 uboot 设置的环境变量传递到内核和 android 系统中,本质上也是为了屏蔽内核和文件系统中的串口控制台。
1 内核配置
如下图所示,在 4418 的 android 源码目录中,使用命令“cd kernel”进入内核源码目
录,使用“export ARCH=arm”命令配置目标平台为 arm,接着使用“make
menuconfig”命令(注意操作这一步,首先要配置好缺省文件),进入内核配置,如下图所示。

使用“make menuconfig”之后,如下图所示。

如下图所示,找到“Device Drivers --->”。

进入“Device Drivers --->”,如下图所示。

如下图所示,找到“Character devices --->”。

进入“Character devices --->”,如下图所示。

如下图所示,找到“Serial drivers --->”。

进入“Serial drivers --->”,如下图所示。

如下图所示,找到“Support for console on AMBA serial port”。

将“Support for console on AMBA serial port”选项去掉,如下图所示。

退出 menuconfig,并保存,得到新的“.config”配置文件。
接着使用命令“vim .config”打开缺省文件,搜索关键词“android”,找到
“CONFIG_CMDLINE”配置选项,如下图所示。

删除掉“androidboot.console=ttyAMA0”,如下图所示。

然后保存,内核配置完成。
2 uboot配置
如下图所示,在 4418 的 android 源码目录中,使用命令“cd u-boot”进入 uboot源
码目录,使用命令“vim board/s5p4418/drone2/board.c”打开环境变量配置的文件。

搜索“console=ttyAMA0,115200n8”,如下图所示,去掉“sprintf(bootargs,
"console=ttyAMA0,115200n8 androidboot.hardware=drone2
androidboot.console=ttyAMA0 androidboot.serialno=0123456789abcdef
initrd=0x49000000,0x1000000 init=/init lcdtype=%s", p);”中的
“console=ttyAMA0,115200n8”和“androidboot.console=ttyAMA0”。注意:一共有
三处,需要全部修改。

修改完成之后的 uboot,重新烧写到开发板之后,如下图所示,在 uboot 中,使用命令
“printenv”,可以看到环境变量的参数改变了。

3 android系统测试
如上配置之后,uboot,内核以及文件系统重新编译烧写,启动开发板,控制台如下图所
示,“Starting kernel ...”

作者使用 360 手机助手安装测试的 app,打开测试 app。关掉默认的串口助手,使用压
缩包中的串口助手,如下图所示(测试的 app 是“serialtest.zip”压缩包的目录/bin 中下的
“serialtest.apk”)。

如下图所示,配置。串口号根据用户实际情况配置。

如果点击“打开串口”有如下图所示的提示框,拔插一下串口的 usb 端。再点击“打开
串口”。

在测试 app 对话框中输入字符,点击“SEND”按钮,在串口助手中会看到有字符输出,
如下图所示。

在 pc 上的串口助手上,“字符串输入框”中输入字符,然后点击发送,然后在开发板
app 上点击按钮“RECV”,可以看到有字符输入到开发板上。

到此,android的测试完毕。
4 最小linux系统和qt系统测试
qte 系统测试方法和最小 linux 系统测试方法类似,本节只介绍最小 linux 系统的完整的
测试方法,qte 系统可以参考最小 linux 系统。
对内核以及文件系统的处理方法和 android系统一模一样,也是内核配置和 uboot 配
置。测试例程的代码在压缩包的“minilinux-c 测试程序.zip”中。
最小 linux 系统文件系统需要修改一下,开机运行我们的测试例程,不然没有办法运行测
试程序。
最小 linux 系统的文件系统“etc/init.d/rcS”文件最后一行添加“/bin/Uart_ttyAMA0
&”。
如下图所示,开机之后会打印“helloworld”,表明串口可以输出;打印完之后,在串口
控制台中输入任意字符,会打印“receive char!”,表明串口接收到了数据(代码中接收到
数据就会打印字符串,具体可以看测试例程)。

本文转自迅为论坛:http://www.topeetboard.com
迅为iTOP-4418开发板串口虚拟控制台配置为普通串口的更多相关文章
- 迅为最新推出iTOP-6818开发平台无缝支持4418开发板
iTOP-6818开发板是一款四核ARM 八核开发板与iTOP-4418开发板完全兼容,CPU主频1.4GHz,内存1GB DDR3(2GB可选),存储16GB EMMC,板载千兆以太网,GPS,WI ...
- 嵌入式开发-迅为4418开发板Android4.4.4实现ble功能
①.如果是迅为4418开发板:在4418/android/device/nexell/drone2/device.mk中添加: frameworks/native/data/etc/android.h ...
- 迅为IMX6Q PLUS开发板烧写Android6.0系统方法
平台:迅为IMX6Q PLUS开发板工具:MfgTool2 工具 镜像文件在光盘目录“03 镜像_android 6.0.1 文件系统”下.其中商业级核心板为 2G内存镜像,工业级核心板为 1G 内存 ...
- 迅为I.MX6开发板工业级嵌入式开发平台
迅为-i.MX6开发板是是基于ARM Cortex™-A9架构的高扩展性多核系列应用处理器, i.MX6系列芯片而且根据应用场合的不同,提供了可供选择的单核.双核和四核产品供客户选择.i.MX6系列的 ...
- [转帖]4412开发板/4418开发板Android4.4.4实现ble功能
本文转自迅为论坛:http://bbs.topeetboard.com ①.4418开发板实现ble功能方法: 在4418/android/device/nexell/drone2/device.mk ...
- 嵌入式开发 迅为4418开发板Qt移植移动4G模块第一部分
本文转自迅为论坛:http://topeetboard.com 了解更多:https://item.taobao.com/item.htm?spm=a1z10.1-c.w4004-7744162139 ...
- [转载]迅为4418开发板Qt移植移动4G模块第一部分
本文转自迅为论坛:http://topeetboard.com 平台:iTOP-4418开发板 1.首先要配置内核,这个一步和Android系统移植3G或者4G模块是一样的.一般模块的 ...
- Android嵌入式安卓触摸屏|4418开发板平台
核心板参数 尺寸:50mm*60mm 高度:核心板连接器为1.5mm 4418 CPU:ARM Cortex-A9 四核 S5P4418处理器 1.4GHz 6818 CPU:ARM Cortex-A ...
- 迅为iTOP-4418嵌入式开发板初体验
iTOP-4418开发板预装 Android4.4.4 系统, 支持9.7 寸.7 寸.4.3 寸屏幕. 参数:核心板参数 尺寸 50mm*60mm高度 核心板连接器为1.5mmCPU ARM Cor ...
随机推荐
- 还在为AndroidStudio的Gradle版本配置头疼?看看老司机的解决方法吧
在AndroidStudio中新建项目成功后会自动下载对应版本的Gradle,那么下载的Gradle到什么地方呢? Mac上会默认下载到 /Users/<用户名>/.gradle/wrap ...
- Java抽象类和接口的区别(好长时间没看这种文章了)
Java抽象类和接口的区别(好长时间没看这种文章了) abstract class和interface是Java语言中对于抽象类定义进行支持的两种机制,正是由于这两种机制的存在,才赋予了Java强大的 ...
- mybaits错误解决:There is no getter for property named 'id' in class 'java.lang.String'
在使用mybaitis传参数的时候,如果仅传入一个类型为String的参数,那么在 xml文件中应该使用_parameter 来代替参数名. 正确的写法: <span style="f ...
- [Usaco2017 Feb]Why Did the Cow Cross the RoadII
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=4993 [算法] 动态规划 转移类似于求LCS [代码] #include<bi ...
- python名片管理系统
1.代码: (1)主程序 #!/usr/bin/env python # -*- coding: UTF-8 -*- import cards_tools # 无限循环,由用户主动决定什么时候退出循环 ...
- Swift4 函数, 元组, 运算符
创建: 2018/02/19 完成: 2018/02/19 更新: 2018/02/25 修改标题 [Swift4 函数] -> [Swift4 函数, 元组, 运算符] 更新 :2018/03 ...
- bzoj 1007: [HNOI2008]水平可见直线【半平面交】
其实并不算标准半平面交?但是思路差不多 先按照斜率排序,然后用栈维护凸壳,每遇到重斜率或a[i],s[top-1]交点的x轴在s[top],s[top-1]交点左侧,则说明s[top]被a[i],s[ ...
- bzoj 3589: 动态树【树链剖分+容斥】
因为一开始调试不知道unsigned怎么输出就没有加\n结果WA了一上午!!!!!然而最后放弃了unsigned选择了&2147483647 首先链剖,因为它所给的链一定是某个点到根的路径上的 ...
- P3161 [CQOI2012]模拟工厂
传送门 先枚举选择哪些订单,然后转为判定是否可行 在能完成的情况下肯定是花越多时间提高生产力越优 我们设可以有\(x\)单位时间来提高生产力,那么如果当前离下一个订单的时间为\(T\)时,这个订单要\ ...
- Akka源码分析-Akka Typed
对不起,akka typed 我是不准备进行源码分析的,首先这个库的API还没有release,所以会may change,也就意味着其概念和设计包括API都会修改,基本就没有再深入分析源码的意义了. ...