查看: 4564|回复: 2

[原创] 【荔枝派nano】10.X-boot分析、修改、编译、下载经验分享(1)

[复制链接]
  • TA的每日心情
    擦汗
    2019-6-26 20:59
  • 签到天数: 235 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2018-7-27 20:02:00 | 显示全部楼层 |阅读模式
    分享到:
    续上贴后,发现Xboot挺好玩的,官方的支持也很到位。
    按照手册 git clone 的xboot 编译下载后(见上贴)串口无反应,屏显分辨率不对等一系列问题。。。
    经过潜心研究一个礼拜的Xboot,此贴分享xboot修改经验。。。

    先来了解下xboot的结构xboot
    ├── developments
    ├── documents
    ├── examples
    ├── src
    │ ├── arch
    │ │ ├── arm32
    │ │ │ ├── include
    │ │ │ ├── lib
    │ │ │ ├── mach‐apple
    │ │ │ ├── mach‐h3
    │ │ │ ├── mach‐n3ds
    │ │ │ ├── mach‐raspi2
    │ │ │ ├── mach‐realview
    │ │ │ ├── mach‐v3s
    │ │ │ ├── mach‐x3128
    │ │ │ ├── mach‐x3288
    │ │ │ └── mach‐x4418
    │ │ ├── arm64
    │ │ │ ├── include
    │ │ │ ├── lib
    │ │ │ ├── mach‐raspi3
    │ │ │ ├── mach‐virt
    │ │ │ ├── mach‐x3399
    │ │ │ └── mach‐x6818
    │ │ └── x64
    │ │ ├── include
    │ │ ├── lib
    │ │ └── mach‐sandbox
    │ ├── driver
    │ │ ├── adc
    │ │ ├── audio
    │ │ ├── battery
    │ │ ├── block
    │ │ ├── buzzer
    │ │ ├── clk
    │ │ ├── clockevent
    │ │ ├── clocksource
    │ │ ├── console
    │ │ ├── dac
    │ │ ├── dma
    │ │ ├── fb
    │ │ ├── gmeter
    │ │ ├── gpio
    │ │ ├── hygrometer
    │ │ ├── i2c
    │ │ ├── input
    │ │ ├── interrupt
    │ │ ├── laserscan
    │ │ ├── led
    │ │ ├── light
    │ │ ├── nvmem
    │ │ ├── pwm
    │ │ ├── regulator
    │ │ ├── reset
    │ │ ├── rng
    │ │ ├── rtc
    │ │ ├── sd
    │ │ ├── spi
    │ │ ├── thermometer
    │ │ ├── uart
    │ │ ├── vibrator
    │ │ └── watchdog
    │ ├── external
    │ │ ├── cairo‐1.14.10
    │ │ ├── chipmunk‐7.0.2
    │ │ ├── freetype‐2.8
    │ │ ├── json‐parser‐1.1.0
    │ │ ├── libfdt‐1.4.2
    │ │ ├── libpng‐1.6.32
    │ │ ├── lua‐5.3.4
    │ │ ├── lua‐cjson‐2.1.0
    │ │ ├── pixman‐0.34.0
    │ │ └── zlib‐1.2.11
    │ ├── framework
    │ ├── include
    │ ├── init
    │ ├── kernel
    │ │ ├── command
    │ │ ├── core
    │ │ ├── fs
    │ │ ├── shell
    │ │ ├── time
    │ │ └── xfs
    │ ├── lib
    │ │ ├── libc
    │ │ ├── libm
    │ │ └── libx
    │ └── romdisk
    │ ├── application
    │ ├── boot
    │ ├── framework
    │ ├── private
    │ ├── storage
    │ └── sys
    └──tools  

    developments : 该目录主要放置一些辅助性开发资料,


    documents :  主要放置XBOOT相关的各种开发文档,包括《XBOOT系统开发指南》、《XBOOT应用开发指南》、《XBOOT运行效果展示》等等。

    examples :主要存放各种参考例程,按主题内容,分目录存放。


    src : XBOOT源码主目录,所有的实现代码都在此目录下,在此目录下,有一个主Makefile,这个Makefile管理所有源码
    的编译规则,能够递归搜索子目录,并自动建立依赖关系,也就是说您只需将某个 c 文件或者 S 文件放置在某个搜索路径下,则会自动编译并链接,无需对Makefile进行修改。该Makefile提供了一组默认编译参数,但默认编译参数无法适应所有平台,故该Makefile会主动加载板级支持包里面的 xboot.mk ,以提供一种修改默认编译参数的机制。
    arch:体系结构主目录,每个具体的体系实现里提供了一个 include 及 lib 目录,用于放置该体系通用代码,比如汇编
    版的 memcpy memset 等加速函数,就放置在该 lib 目录,共享的头文件放置在 include 目录下。该目录现已支持
    如下体系结构:
    QQ截图20180727201157.jpg
    ARM32下
    QQ截图20180727201248.jpg

    driver:驱动框架主目录,各种类型的驱动框架都放置在此,


    external  : 主要放置各种第三方软件包


    framework : 中间件实现层,主要放置与虚拟机相关的实现代码,是驱动与应用软件间的桥梁,虚拟机的入口文件为 vm.c


    include  :头文件目录,所有的 .h 文件都放置在此。


    init:此目录下放置主入口函数以及版本信息等,主入口函数在做一些必要的初始化工作后,就进入shell命令行,等待用
    户键入命令,或者直接启动某个应用软件。

    kernel  :内核目录,提供各种核心组件实现,是整个系统的基石。


    romdisk:这是编译进系统的romdisk目录,也就是xboot的根文件系统,存储为cpio格式,并在链接目标文件时一起打包。
    在系统运行时,会自动挂载到根目录作根文件系统。在板级支持包下,存在一个同名的目录,两者之间是overlay的关系,即板级支持包里的romdisk目录会覆盖默认系统源码目录下的romdisk。板级相关的文件,请放到板级支持包里的romdisk目录。  

    QQ截图20180727201535.jpg


    知道了xboot的架构后,我们就可以开始修改它了,首先串口没打印信息,可以确定是串口0的io不对,先看下开板原理图的uart0.
    PE0:    uart_rx
    PE1:    uart_tx
    QQ截图20180727201904.jpg 在datasheet中
    QQ截图20180727202153.jpg
    然后查看 xboot中的PE0,PE1
    QQ截图20180727205240.jpg

    然后修改设备树的 的uart0
    修改前 1.jpg

    修改后
    QQ截图20180727205350.jpg

    然后重新make即可,,,,

    其实上面绕了这么多,其实还是官方手册背锅,因为官方手册给出的git clone  链接是错误的
    手册链接为branch 的链接:
    1. git clone -b f1c100s-kk131 https://github.com/xboot/xboot.git
    复制代码
    修改为主线master链接即可,串口可以直接用的
    1. git clone  https://github.com/xboot/xboot.git
    复制代码


    国外网站下载速度慢的话用码云下载即可,,,看下uart打印信息吧
    QQ截图20180727205812.jpg

    至此 串口修改ok


    相关阅读:
    X-boot编译下载
    X-boot分析、修改、编译、下载经验分享(1)
    X-boot分析、修改、编译、下载经验分享(2)
    Eclipse编译仿真调试运行Xboot




    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-1-16 17:48
  • 签到天数: 592 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2018-7-27 23:49:08 | 显示全部楼层
    话说,你的串口是不是和 iic 冲突了
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2019-6-26 20:59
  • 签到天数: 235 天

    连续签到: 1 天

    [LV.7]常住居民III

     楼主| 发表于 2018-7-28 09:34:09 | 显示全部楼层
    本帖最后由 小马哥-1650185 于 2018-7-28 09:35 编辑
    robe.zhang 发表于 2018-7-27 23:49
    话说,你的串口是不是和 iic 冲突了

    git 的branch 里面  xboot  定义的uart0  是PF脚
    master定义的是和荔枝派板子定义的pe0 pe1

    荔枝派 核心板 2.54间距 排针 上的pf脚 没有引出来
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-4-19 13:18 , Processed in 0.131845 second(s), 20 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.