点击打开链接

诸位亲最近怎么样?刚过完年上班是不是很不情愿?自古做事者,不唯有坚韧不拔之志,亦或有超世之才。所以,诸位好好加油。今天小编想给大家系统性总结一下Dragon Board 410c板基于Andriod 5.1,Linux,Windows10三种操作系统开发特点(Dragon Board 410c同时支持三种操作系统开发)。
  文章有点长,大家耐心看完。
初识DragonBoard 410c

DragonBoard 410c是一款搭载Qualcomm Snapdragon 410(64位的四核处理器)的开发板,它功能齐全,具有强大的处理能力,内置 8GB eMMC (支持标准microSD卡槽),并且还内置wifi、蓝牙、和GPS模块,具有HDMI 输出及USB 接口 (3个)。

同时兼容96Boards消费版(CE)规范。(96Boards 是 ARM 开放平台规范,是第一个定义 Cortex-A 开发板的开放规范,该规范由Linaro社区委员会组织维护。标准化扩展 Peripheral I/O 总线,显示和相机等。定位移动、嵌入及数字家庭领域。允许硬件生态系统开发一系列兼容组件的产品,在其生命周期可以在任意兼容 96Boards 的平台上使用)。 同时支持win10 IOT操作系统,系统包可以在微软官方网站里下载。
系统环境

下载Android源码

大家可以通过repo命令下载代码:

上面的release版本是今年9月份的,如果大家想下载最新版本应该怎么办呢?下面给大家介绍一下如何查找代码库的位置。 
首先打开CodeAurora网站https://www.codeaurora.org/,点击TOP PROJECTS的Android for MSM进入对应的project
进入Android for MSM页面后点击下图中红色圆圈的Wiki按钮,访问此project的wiki页面。

在Wiki页面中查找Branch Release章节,你可以找到代码下载方法(红框处)。我们要下载Release分支的代码,所以点击下图中红圈处的release链接,会进入release列表页面。

在此页面就可以找到自己想要代码的Manifest了,DragonBoard 410c用的是Snapdragon 410芯片,所以我们选择的Chipset是msm8916_64。

Linux

1、交叉编译环境准备
    DragonBoard 410c是一个64位的ARMv8平台,所以在PC机上编译ARM架构的代码需要交叉编译环境。首先下载Linaro GCC cross compiler,然后将下载的压缩包解压到你自己指定的目录下:

2、下载Linux Kernel源码
Linux Kernel的代码信息可以通过 Linaro Qualcomm Landing Team git repository来查找

根据tags信息,我们可以看到,DragonBoard 410c的最新Linux源码是15.09版本,下面我们来下载Linux源码。

DragonBoard 410c支持win10 IOT操作系统,系统包可以在微软官方网站里下载。链接:http://ms-iot.github.io/content/en-US/Downloads.htm

打开链接网页,找到 Download Windows 10 lot Core for Dragonboard 410c,点击进入如下图红色方框所标识。
下载完成后的系统包如下:

开发环境总结

以上是三种操作系统的环境,我们可以看出Dragon Board 410c开源性非常好,三种操作系统代码都可以进行支持。确实很值得每一个人都去学习。

编译准备

修改确认kernel的UART配置
下载完代码后,我们需要对kernel的UART进行简单配置,具体配置参数可以参考kernel的devicetree文档(kernel/Documentation/devicetree/bindings/tty/serial/msm_serial.txt)。
 
首先,确认kernel/arch/arm64/boot/dts/qcom/msm8916.dtsi里的blsp1_uart2设置,具体设置如下:

然后,确认kernel/arch/arm64/boot/dts/qcom/msm8916-pinctrl.dtsi里的uartconsole设置

最后,确认kernel/drivers/clk/qcom/clock-gcc-8916.c中的blsp1_uart2_apps_clk_src ,如下:


确认修改完以上的配置后就可以编译系统了。

总结:只有Andriod需要配置编译系统。

编译源码

通过以下命令编译Android系统。编译完的image可以通过fastboot命令烧写到DragonBoard 410c上。

编译kernel
首先,我们先要设置环境变量:

前面第一步我们已经下载了交叉编译器,所以CROSS_COMPILE设置为如下:

在15.09版本上存在一个build的问题,所以我们需要通过cherry-pick来修复一下:

已经万事俱备了,下面我们开始编译kernel:

编译boot image
      boot image是由三部分组成的:设备树表镜像(dt.img)、kernel镜像(Image)和init ramdisk镜像。kernel镜像我们在上面已经编译出来了,下面我们来看看其他两部分从哪里获取。
 
  首先,我们需要下载安装dt工具以及镜像生成工具

然后,编译dt镜像:


init ramdisk镜像可以通过以下命令获取:

已经都准备好了,下面我们就可以生成boot image了。

编译源码总结:我们看到,在Andriod ,Linux是需要编译源码的,Windows10则不需要。

安装界面

安装Windows10 IOT Update Tool for dragonboard。在QDN网站里可以找到相关的工具,如下图所示,根据电脑主机系统选择相应的版本的工具。


在Windows系统环境下直接安装该工具,安装成功会在桌面生成相应的快捷方式:


双击直接打开工具,界面如下图所示:


点击Browse按钮,选择默认路径下:C:\Program Files\Microsoft IoT\FFU\QCDB410C\flash.ffu文件。

连接Dragonboard 410c的Micro USB到电脑主机,把Dragonboard 410c的启动开关设置为"1000",把USB BOOT开关拨到箭头方向,如下图所示。

插上电源适配器Adapter,系统上电后,工具界面连接状态灯变为绿色,可以开始烧录系统。
点击工具界面的Program按钮,几分钟后系统安装完成,并弹出安装成功的对话框。

此时可以拔出电源Adapter,把启动开关设置"0000",即默认状态。用HDMI线连接Dragonboard 410c和外部显示器,连接USB鼠标、键盘。
插入电源Adapter,开始启动Windows10 IOT。

上图是进入Windows10 IOT系统后默认界面,Enjoy

总结
Windows10作为系统是直接与板子相连的,而Andriod和Linux需要在各自系统上进行编译。

菜鸟学习物联网---辨析基于Andriod 5.1,Linux,Windows10开发Dragon Board 410c板相关推荐

  1. 基于c语言的linux嵌入式开发入门

    前言 本文主要包含,c语言基本结构与语法.make及makefile的使用.main函数参数与返回值的说明.标准输入.输出.错误流的介绍以及linux管道的应用. 语言数据类型 联合体也有翻译为共用体 ...

  2. 学习笔记(01):基于qt和ffmpeg视频播放器开发实战-avformat_open_input函数详解

    立即学习:https://edu.csdn.net/course/play/3300/157129?utm_source=blogtoedu

  3. 基于DM6467的TVP7002 Linux驱动程序开发

    在Linux中,使用V4L2框架管理所有的视频编解码设备.针对我们开发板的V4L2框架结构已经在之前的TVP5150驱动程序编写和OV5642驱动程序编写的说明文档中进行了详细的分析,所以这里不再对整 ...

  4. 小程序 | 基于WAMP的新闻网小程序开发(体验全栈式开发微信小程序)

    之前学习微信小程序开发,主要是基于JS.WXML.WXSS的前端开发,对于后端技术不精的我也是使用了微信开发者工具中的云开发功能,但是今天突发奇想,特别想体验一下全栈式开发微信小程序,学习了一下基于W ...

  5. ASP.Net学习笔记004--基于ashx方式的ASP.Net开发1

    以前写的课程都没有附上源码,很抱歉! 课程中的源码可以加qq索要:1606841559 技术交流qq1群:251572072 技术交流qq2群:170933152 也可以自己下载: ASP.Net学习 ...

  6. Linux驱动开发(十八)---网络(网卡)驱动学习

    前文回顾 <Linux驱动开发(一)-环境搭建与hello world> <Linux驱动开发(二)-驱动与设备的分离设计> <Linux驱动开发(三)-设备树> ...

  7. C/C++ Linux后端进BAT的学习路线(腾讯官方认证)丨Linux服务器开发

    我相信对于每一个程序员来说都有一个进入BAT的梦想,今天Hu先生给大家分享的是经过腾讯官方认证的一份C/C++Linux后端开发的知识点学习路线总结.大家可以根据知识点对比,看看自己目前还有哪些技术需 ...

  8. 菜鸟学习笔记:Java提升篇12(Java动态性2——动态编译、javassist字节码操作)

    菜鸟学习笔记:Java提升篇12(Java动态性2--动态编译.javassist字节码操作) Java的动态编译 通过脚本引擎执行代码 Java字节码操作 JAVAssist的简单使用 常用API ...

  9. 菜鸟学习笔记:Java提升篇11(Java动态性1——注解与反射)

    Java提升篇11(Java其它高级特性--注解与反射) 注解(Annotation) JDK内置注解 自定义注解 元注解(meta-annotation) 反射(reflection) 动态语言 反 ...

最新文章

  1. 对数函数定义域和值域_呆哥数学每日一题 —— 复合函数值域
  2. w7旗舰版计算机替换,win7系统电脑替换全部系统图标的操作方法
  3. 企业级项目实战讲解!java的war包能直接改名么
  4. 在PropertyGrid中使用密码显示
  5. Educational Codeforces Round 65 (Rated for Div. 2) C. News Distribution
  6. idea导入Javaweb项目
  7. matlab语音信号的采集与处理,基于MATLAB的语音信号的采集与处理详解
  8. 【SEU程序设计课笔记】 Mooc - Chapter 5 - (EX) - 猜数字游戏
  9. 电信网关改造无线打印服务器,电信天翼网关路由改桥接流程
  10. MySQL–ROW_NUMBER
  11. 通过wifi共享使Linux设备连接网络
  12. ONEDNS配置2:centos7DNS服务器VA转发器配置
  13. 港科夜闻|香港科技大学(广州)拟获批首个省级重点实验室
  14. 机械师星辰15电脑开机一直黑屏怎么重装电脑系统?
  15. android 手机怎么测试,android智能手机怎样测试手机硬件?
  16. 利用python预测交通拥堵_Python pyecharts 绘制的交通拥堵情况地图
  17. 【UEFI实战】HII之vfr文件
  18. 世界上排名前100的英文歌详细名单及介绍
  19. JetBrains学生包续期
  20. 气隙位置对电感参数的影响及改进--怎样再能气隙交错布置!

热门文章

  1. Python---编写一个函数,提示输入两个数字a,b,并进行a与b的除法运算。
  2. Centos7 防火墙开放端口,查看状态,查看开放端口
  3. 026_jdbc-mysql-PrepareStatement解决sql注入
  4. 唱好铁血丹心谐音正规_孩子想学唱歌?儿童声乐怎么学才好?
  5. cf网络原因服务器无响应,CF由于网络原因连接服务器失败请重试 1033_10136
  6. 慕课堂签到迟到怎么办_线上教学第一周:长安大学精品课程助力“云端课堂”...
  7. 图像处理:图像中噪声分布和概率密度函数的关系
  8. linux ssh服务的优化,SSH服务端配置、优化加速、安全防护
  9. openstack对接glusterfs存储
  10. Java基础:char类型字节占用数