打印

从零开始DIY 39元Cortex-A开发板,直播单片机转linux的踩坑之旅

[复制链接]
2418|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 zepanwucai 于 2016-8-12 18:21 编辑

随着半导体行业的发展,数字芯片的价格越来越低,现在Cortex-A芯片的价格也到20元以内了,128MB的DDR3芯片也是10元以内,
Cortex-A内核的芯片的性能和外设都是普通单片机没法比的,开发一些复杂应用比用单片机使劲优化要方便很多。
虽然已经有了各种水果派,但是那些都是已经弄好系统的,和直接玩电脑的linux没什么区别,学不到太多东西。
之前就很想DIY下Cortex-A系列内核芯片的板子,只是苦于各种BGA芯片对PCB要求太高,样板费太贵,没有去做。
几个月前看到了LQFP封装的Cortex-A8 芯片,估摸了下这个4层板,普通工艺就能搞定了,于是在荔枝上市的7月初开始了我的荔枝派DIY计划~


经过了一个多月的业余时间设计开发,从原理图设计,PCB layout,焊接调试,bootloader移植,系统移植,一路踩坑过来,总算是如愿跑起了debian系统。

如果你已经比较熟悉常规单片机的开发,再看看我这一路踩的坑,相信也能对Cortex-A内核芯片的解决方案构建全流程 了如指掌。
前期硬件设计部分的直播连载帖已经更新在github上,欢迎围观follow:https://github.com/Zepan/ilichee
后期我会继续在帖子和github里更新软件移植和典型应用开发的教程,欢迎持续关注。
项目已上线众筹,荔枝派39元起,1GHz主频,512MB DDR3内存,LCD,摄像头、WIFI、蓝牙、红外等多种外设,可以跟着我一起踩坑入门Cortex-A开发。
请猛击:http://t.cn/RtOXlMO
也欢迎加群实时交流: 荔枝板DIY交流群:573832310



相关帖子

沙发
zepanwucai|  楼主 | 2016-8-13 11:14 | 只看该作者
顶顶

使用特权

评论回复
板凳
jackhwang| | 2016-8-13 12:59 | 只看该作者
定定定定,(*^__^*) 嘻嘻……

使用特权

评论回复
地板
zepanwucai|  楼主 | 2016-8-15 15:11 | 只看该作者
软件部分连载教程开始更新~  使用markdown格式编写。
阅读版式可以到github查看:
https://github.com/Zepan/ilichee ... 6%90%AD%E5%BB%BA.md
开发环境搭建〇.背景

本文所属目录层次为:

-> 2.系统移植     -> 1.基于linux-sunxi SDK的系统移植        -> 1.开发环境搭建

主要介绍linux-sunxi SDK的开发环境搭建
本系列教程使用启发式编写,在写明操作步骤后会附加一些思考题供读者思考,以*号标记思考题的程度
一星:刚接触linux,纯新手需要思考、搜索解决的问题
二星:熟悉linux使用的朋友可以了解的一些问题,如底层问题,或者sdk相关问题
三星:非常熟悉linux,可以一起探讨的问题

(交流QQ群:573832310,上车口令:爱荔枝)

一.准备开发机

与普通单片机开发使用Windows下的可视化IDE,如 MDK,IAR等不同,Linux下开发嵌入式程序多使用一套工具链开发,如arm-linux-gnueabihf-,arm-linux-gnueabi-,arm-none-linux-gnueabi-等

* 工具链的具体定义?前面列出的工具链名字的含义?‘-’分割的各字段的含义?

所以我们需要使用有个Linux开发机来进行开发。具体到全志这颗芯片的SDK,其适合的开发环境是64位linux系统,推荐Ubuntu 1404 64bit系统(桌面版,服务器版均可),预留足够大的硬盘(如果要编译安卓的话,有100G以上最好,单linux的话20G至少)

** 为什么全志的SDK需要64位系统开发?为什么推荐Ubuntu 1404 64bit系统?

首先我们下载Ubuntu 1404 64bit系统的镜像安装包,对于没有多余实体机的用户可以再下载VMWare等虚拟机软件

* 在哪里可以下载?

然后在实体机或者虚拟机上安装好Ubuntu系统,这样开发机就准备完成了

* 如何安装Ubuntu系统?

实体机上开发可以直接打开终端,虚拟机的话可以在桌面里开终端,或者使用Xshell等终端软件ssh连接。

* 什么叫ssh连接? * 如何设置虚拟机才能让本机在终端里连接上虚拟机?
二.准备SDK及相关软件

开源的linux-sunxi比较适合初学者学习,所以我们先开始试用linux-sunxi这个sdk 开发主要用到下面几个工程,请先下载到本地(网速慢的话可以先用迅雷下到本地)

git clone https://github.com/linux-sunxi/linux-sunxi.gitgit clone https://github.com/linux-sunxi/u-boot-sunxi.gitgit clone https://github.com/linux-sunxi/sunxi-tools.git

https://github.com/linux-sunxi下的工程有兴趣也都可以浏览下

* git的基本操作? 尝试自己建立编辑一个github项目 ** linux-sunxi下的工程大致都是什么功能?

简单说下前面三个工程包含的内容,linux-sunxi是linux内核的工程,u-boot-sunxi就是uboot的工程,sunxi-tools是sunxi芯片相关的的一些工具,如fex2bin,bin2fex

* linux内核是什么?uboot是什么?

因为我们要从头开始移植,所以先从u-boot-sunxi这个工程开始

** 可以先浏览下目录,看下应该用什么参数编译

首先我们安装一些依赖包

sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-devlib32ncurses5-dev gcc-multilib x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-devg++-multilib mingw32 tofrodos python-markdown libxml2-utils gcc-arm-linux-gnueabihf
* 什么叫安装依赖?前面安装的这都是啥? * 安装的时候是不是有个别依赖没装上?怎么解决?

再到本教程所在github工程下的Config_Files里下载荔枝板的配置文件A13-Lichee_defconfig,sun5i-a13-lichee.dts(因为是直播移植,这两个配置文件目前尚未完善,会在以后直播过程中完善),以及修改后的dts的Makefile

拷贝这三个文件到uboot工程的对应位置

cp A13-Lichee_defconfig configs/cp sun5i-a13-lichee.dts arch/arm/dts/cp Makefile arch/arm/dts/
** 看下这两个文件都是啥配置?
三.初次编译尝试

然后先配置成荔枝派的默认配置

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- A13-Lichee_config
* 这个命令的各部分是什么意思? ** 可以浏览下uboot的Make流程

现在可以打开menuconfig配置菜单来看看uboot的一些选项,如果知道那些参数的意思的话也可以试着修改下

make ARCH=arm menuconfig
* 熟悉下配置菜单的使用,比如查找选项,查看帮助是按什么键?

浏览好后,先退出配置菜单,使用下面的命令来编译一次试试,注意编译前后目录下多了什么文件(如果提示dtc版本低请自行更新):

time make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- 2>&1 | tee build.log
* 上面的编译命令是什么意思?

可以看到目录下多了一堆u-boot开头的文件

u-boot.cfg  u-boot-dtb.bin  u-boot.img  u-boot.map        u-boot.srec                u-boot.symu-boot.bin  u-boot.dtb  u-boot-dtb.img  u-boot.lds  u-boot-nodtb.bin  u-boot-sunxi-with-spl.bin
** 这堆文件各是什么用途的文件?

我们这里需要的文件是u-boot-sunxi-with-spl.bin,如果你手上有荔枝派的话,可以使用下面的命令(sdX是对应的tf卡读卡器的设备)往tf卡里烧入u-boot-sunxi-with-spl.bin:

sudo dd if=u-boot-sunxi-with-spl.bin of=/dev/sdX bs=1024 seek=8
* 上面的命令是什么意思? ** 为什么seek=8?

然后插卡到荔枝派的tf口,上电看看UART1的启动输出

四.结语

开发环境就此搭建好了,也初次尝试编译了下,对于linux熟悉的朋友来说这一节很短 对于linux新手来说,这一节内容 还是挺多的,完全消化还是得多多搜索才行。 下节会讲述uboot是怎样一步步启动CPU的。


使用特权

评论回复
5
深夜的堂吉诃德| | 2017-3-19 09:34 | 只看该作者
不错不错顶

使用特权

评论回复
6
guojunhope| | 2020-6-11 20:51 | 只看该作者
支持国产,支持原创!
这么好的东西,却没有引起足够的重视,唉

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

15

主题

180

帖子

6

粉丝