• 树莓派4上使用uboot+tftp调试rt-thread程序


    树莓派4上使用uboot+tftp调试rt-thread程序

    toc

    1.文章说明

    做嵌入式开发,往往一个高效而可靠的开发环境,对于开发者来说非常的重要。

    因为嵌入式往往需要把程序放到板子上去运行,而再树莓派上做rt-thread开发调试的时候,通常有三种办法。

    第一种:SD卡转移

    这种办法就是替换SD卡镜像内的kernel文件,这种办法每次都要将SD卡拔出,然后从电脑中转移系统镜像到SD卡中。

    第二种:用uboot+tftp

    这种办法的有点就是直接通过网络方式进行下载,需要有网线插入,并且宿主机搭建一个tftp的服务器。

    第三种:用uboot+串口ymodem

    这种就是利用了uboot里面的ymodem的功能,只需要将固件通过串口加载到内存,然后指定内存的运行的起始地址。

    下面我主要介绍第二种方式进行说明。

    2.编译uboot程序

    可以看我之前编译树莓派3编译uboot的文章。

    接着,可以需要注意的是配置

    ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- make rpi_arm64_defconfig

    配置完成后,接着输入make menuconfig。接着需要uboot开启dcache的命令。

    这里的命令

    接着添加dcache命令

    选择

    配置完成后,就可以进行编译了

    ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- make

    编译完成后,会生成u-boot.bin程序。

    3.启动uboot

    因为uboot要放到SD卡目录下,所以先修改config.txt

    enable_uart=1
    arm_64bit=1
    kernel=u-boot.bin

    然后把编译好的固件放到SD卡中。

    启动就可以看到效果了。

    设置环境变量:

    setenv bootcmd "dhcp 0x00200000 192.168.12.194:rtthread.bin;dcache flush;go 0x00200000"
    saveenv

    其中要设置自己的tftp服务器的IP地址。dcache flush就可以了。

    最后重启系统就可以了。

    每次更新了RTT固件,直接将编译好的固件放到TFTP服务器的文件夹中,接着上电重启树莓派即可。不用每次都对SD卡进行操作了。

    4.编译rtt固件

    这里需要注意的是将RTT的固件地址进行一定的偏移。

    https://github.com/RT-Thread/rt-thread/tree/master/bsp/raspberry-pi/raspi4

    接着设置link.lds文件。将起始地址改为0x200000

    因为uboot的入口地址是0x80000,如果这里也是0x80000那就不行了。

    所以这里改一下入口地址就可以了。

    5.总结

    再uboot中将固件转移到内存中,然后从内存中进行跳转的过程。需要注意的是将cache关闭掉。

    因为目前uboot中已经开启了mmu,这会导致跳转过去的时候,cache没有关闭掉,会出现data abort。所以在跳转前需要关闭MMU。

    对于树莓派的程序调试,采用uboot+tftp确实是一种加快调试手段的方法。





  • 相关阅读:
    Mosaic 前端微服务框架
    使用skipper 扩展fabio 的路由&&http proxy 功能
    Introducing Makisu: Uber’s Fast, Reliable Docker Image Builder for Apache Mesos and Kubernetes
    lua-resty-shell 多任务执行
    openresty 使用lua-resty-shell 执行shell 脚本
    ncm 让跨项目配置一致性简单的工具
    lapis 项目添加prometheus 监控集成grafana
    使用prometheus+ grafana+nginx-module-vts 模块监控openresty
    两天快速开发一个自己的微信小程序
    笔记本如何查看mac地址
  • 原文地址:https://www.cnblogs.com/bigmagic/p/12980321.html
Copyright © 2020-2023  润新知