工欲善其事 必先利其器。hi3559 调试的时候 官方是给出的是 nft 的方式 ,这方式只能在有以太网卡的时候可以用 ,如果你的 evt 板没有 以太网卡 ,那就很不方便 。 有个高效的工具 adbd 可以 实现 高效的调试 。  所以 工具 也是一个很重要的 环节 ,hi3559 的 原厂提供的sdk 非常简陋,没有buildroot 工具箱 ,adbd 需要自己去移植,找了一个版本 2021.11 buildroot 版本。  

一 ,移植 buildroot-2021.11 版本 

需要把 编译器的版本信息给到 buildroot  ,让buildroot 用能用海思的编译器工作 如上图所示,目前尝试 也就只有这个版本的adbd 可以用,buildroot 一旦 移植好了后 ,后续的 工程开发的所需要工具 都是一个 make 的事情 ,不需要自己去移植,一键生成 你配置好的 工具 。

二 linux 内核 的配置 

在 USB Gadet 选项  的 funtion filesystem  配置完善,他的 理论 支撑就是 把 usb 的 控制器 传输端点 放到 用户层 ,adbd 可以 直接访问 usb 的传输端点 。

ko 加载 步骤如下 

insmod libcomposite.ko

insmod usb_f_fs.ko

insmod gadgetfs.ko

insmod g_ffs.ko idVendor=0x1d6b idProduct=0x4e26 iSerialNumber="hisi"

mkdir -p /dev/usb-ffs/adb 

mount -t functionfs adb /dev/usb-ffs/adb -o uid=3000,gid=3000 

/dev/usb-ffs/adb  目录下有个 ep0 的端点  这个就是给adbd 使用的 usb 端点

Udc 是 deviecs usb 控制器,文件系统下 控制器就是 usb 的传输端点 

三 ,adbd 运行的 时候遇到的问题 

1,绑定不了 tcp 端口 5037 ,因为 lo 循环口没有 up  ,adbd 需要去使用 lo 绑定 端口

   所以 ifconfig lo up  需要这个指令把 lo up 起来 

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐