全志V3S 编译运行xboot笔记

1.目的

现在手上有一块V3S的板子,想将其用起来。现在来记录一下这个过程。记录一下荔枝派zero的使用流程。

2.环境准备

首先需要clone代码

git clone git@gitee.com:xboot/xboot.git

接着就是设定交叉编译环境

清理环境

make clean

编译

make CROSS_COMPILE=/opt/gcc-linaro-5.3.1-2016.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf- PLATFORM=arm32-v3s

需要注意的是gcc一定是arm-linux-gnueabihf-否则可能会编译链接出错。因为v3s需要硬浮点hf。

编译完成后可以看到效果如下:

3.下载

编译完成后,就可以将我们编译好的文件下载进去了

3.1 fel模式进入

全志芯片的启动特点:

需要进入fel模式

  1. TF卡和spi flash 同时没有可启动镜像;

    也就是说你不插卡,且焊接的是新的或者没有有效镜像的spi flash,那就上电自动进入fel下载模式
  2. TF卡中有进入fel模式的特殊固件 fel-sdboot.sunxi

    如果你的spiflash已经有了启动镜像,那么需要在TF卡中烧入一个sunxi提供的 启动工具 ( dd if=fel-sdboot.sunxi of=/dev/mmcblk0 bs=1024 seek=8 ), 那么插入该TF卡启动会进入fel模式;
  3. 上电时SPI_MISO拉低到地

    该引脚为boot引脚,上电时出于低电平即会进入fel下载模式。

满足上面三个条件就可以进入fel模式了。

插上我们的usb线即可。

3.2 sunxi-fel工具的使用

由于在Ubuntu上进行开发工作,所以可以采用https://github.com/Icenowy/sunxi-tools.git提供的sunxi-fel工具进行spi flash的烧录工作。

具体的步骤如下:

第一步:clone代码

git clone `https://github.com/Icenowy/sunxi-tools.git

第二步:切换分支

对于v3s来说,我们切换到v3s的分支即可。

然后编译代码

sudo make
sudo make install

完成后就可以在控制台输入sunxi-fel了。

检查是否可以探测到芯片信息

这样就可以开始烧录了

3.3 烧录

烧录过程可以直接烧录到RAM中去执行

sudo sunxi-fel -p write 0x40000000 xboot.bin
sudo sunxi-fel exec 0x40000000

并且可以看到我们的开发板上的红灯一闪一闪的了

当然也可以进行烧录到spi flash中,这样,每次上电都会启动程序。

sunxi-fel -p spiflash-write 0 xboot.bin

需要注意的是,要切换到spi-rebase分支才可以,并且spi flash需要手动焊接。

4.串口打印

我们有的时候需要用串口查看具体的信息,那么怎么办呢?

可以连接板子的uart0作为输出信息

连接完成ttl转usb线后就可以在控制台看到打印信息了

此时,我们的xboot开发环境就搭建完成了。

5.总结

通过对xboot环境的搭建,我们可以更加清楚知道v3s的开发流程。所以一定需要做好记录,这样才能不必每次都需要摸索折腾。

全志V3S 编译运行xboot笔记的更多相关文章

  1. Java学习笔记5---命令行下用javac,java编译运行含package语句的类

    对于笔记3中的HelloWorld程序,编译时只要输入javac HelloWorld.java即可生成类文件:再用java HelloWorld即可运行. 如果源程序使用了包声明,编译运行时要使用某 ...

  2. Java之路——环境配置与编译运行

    本文大纲 一.开篇 二.JDK下载 三.JDK安装 四.环境配置 五.初识Java编译 六.Java与Javac 七.第一个Java程序 八.总结 九.参考资料 一.开篇 通过对之前Java之路的了解 ...

  3. 为嵌入式全志V3s荔枝派板卡添加USB MT7601U(小米随身WIFI)驱动

    折腾了了一天终于scan出环境热点了,感觉本来挺简单的事情,网上教程一大把还费了一天的劲,很丧.不过网上教程虽多,但是还还是有些不同之处的,现在特意总结一下 全志V3s荔枝派板卡 添加该驱动的过程. ...

  4. 如何用javac 和java 编译运行整个Java工程

    转自:http://blog.csdn.net/huagong_adu/article/details/6929817      前言:本文教你怎么用javac和Java命令,以及如何利用脚本(she ...

  5. 使用Eclipse编译运行MapReduce程序 Hadoop2.6.0_Ubuntu/CentOS

    使用Eclipse编译运行MapReduce程序 Hadoop2.6.0_Ubuntu/CentOS  2014-10-10 (updated: 2016-05-22) 64246 153 本教程介绍 ...

  6. 如何在命令提示符下编译运行含有Package的java文件

    这篇是大二自学Java的时候记下的笔记,中午回顾印象笔记的时候意外看到了这篇.看到多年前写下的文字,我想起那时候我对Java的懵懵懂懂,每天晚上在图书馆照着书写书上的示例代码,为一个中文分号绞尽脑汁, ...

  7. JavaSE(一)Java程序的三个基本规则-组织形式,编译运行,命名规则

    一.Java程序的组织形式       Java程序是一种纯粹的面向对象的程序设计语言,因此Java程序必须以类(class)的形式存在,类(class)是Java程序的最小程序单位.       J ...

  8. 如何使用Notepad++编译运行php

    安装编译运行文件的插件.插件-Plugin Manager-Show Plugin Manager. 找到NppExec插件,从这个插件的名字来看就是各位文件的执行.点击Install.需要下载安装, ...

  9. EditPlus远程编辑、语法高亮、编译运行源代码设置

    最近写代码的过程中,除了写Java时用的Eclipse.在Linux下编辑的Vi之外,有时也会用EditPlus打开一些文件,如配置文件.日志文件.脚本等.个人觉得EditPlus在很多场景下比较好用 ...

随机推荐

  1. Django2.0 配置 media

    1.setting.py文件 MEDIA_URL='/media/' MEDIA_ROOT=os.path.join(BASE_DIR,"media") 注意:MEDIA_ROOT ...

  2. 8.JavaSE之变量、常量、作用域

    变量variable: 变量是什么:就是内存中开辟的可以变化的量! Java是一种强类型语言,每个变量都必须声明其类型. Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型,作用域   ...

  3. java.lang.UnsupportedOperationException: Manual close is not allowed over a Spring managed SqlSession

    java.lang.UnsupportedOperationException: Manual close is not allowed over a Spring managed SqlSessio ...

  4. NOI2019 酱油记

    今天是 \(7.18\) ,考完二试炸的很惨-于是我就来写游记了. DAY 0 签到日(7.14) 还没起床,原先定的飞机就被取消了,只好改签. 然而还是很早到的机场,等了好久好久. 到广州咯~下大雨 ...

  5. 小白学Java:内部类

    目录 小白学Java:内部类 内部类的分类 成员内部类 局部内部类 静态内部类 匿名内部类 内部类的继承 内部类有啥用 小白学Java:内部类 内部类是封装的一种形式,是定义在类或接口中的类. 内部类 ...

  6. Dynamics CRM Tips

    这里是作为开发中遇到的各式各样的问题的总结贴. 如果对Dynamics CRM 开发有兴趣, 请参考Step by Step 开发dynamics CRM 移除sitemap中的entity 从O36 ...

  7. 【原创】(一)Linux进程调度器-基础

    背景 Read the fucking source code! --By 鲁迅 A picture is worth a thousand words. --By 高尔基 说明: Kernel版本: ...

  8. jdk for centos7

    https://www.cnblogs.com/chy123/p/6750351.html

  9. Object-c的数组常用方法

    Object-c的数组常用方法 #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @a ...

  10. Spring注解开发系列Ⅳ --- 属性赋值

    在Spring框架中,属性的注入我们有多种方式,我们可以通过构造方法注入,可以通过set方法注入,也可以通过p名称空间注入,方式多种多样,对于复杂的数据类型比如对象.数组.List集合.map集合.P ...