|
|
书从何起,说是以前在论坛阅过一贴介绍关于使用OTG烧录的内容,但当我想研究一下下再次检索时,由于缺乏关键信息再也找不到相关帖子,大海捞针,有点困难,于是瞎78乱搜,都知道安卓是基于linux,既然可以在linux里使用交叉编译来搞C51的开发环境,那么安卓应该也是可以,于是查找相关资料时,惊奇的发现大多都是使用giuhub上的1个库,通过py脚本可以实现烧录,于是想简单测试一下在手机上可不可以?
第一,软硬件相关信息,
硬件:type-C口OTG转接线,板载CH340的STC15开发板,已root的安卓系统手机。
软件:termux
第二,STC相关flash库地址
Github库地址1:(这个有点老旧,从16年起,没见更新)
https://github.com/laborer/stcflash
GitHub库地址2:(这个几乎支持所有系列的STC单片机,近期还一直在更新,本次就是测试这个)
https://github.com/grigorig/stcgal
第三,
3.1,安装并打开termux,通过命令,图形界面选择清华大学的镜像源(最好的选择还是爬长城,毕竟有时候要克隆一些GitHub上的东西方便,可忽略此步)
命令:termux-change-repo
3.2,通过命令或手机设置里的授权管理赋予termux存储权限
命令:termux-setup-storage
3.3,
更新一下软件包
命令:pkg update && pkg upgrade
安装python
命令:pkg install python -y
3.4,确保python和相关依赖安装成功后,直接使用pip安装stcgal
命令:pip install stcgal
再克隆源码到本地,参考相关.md文件,中英文都有,搞就是了,这里就不过多废了,运行帮助命令看看
./stcgal/stcgal.py -h
3.5,otg连接单片机开发板,尝试连接
命令:./stcgal/stcgal.py -P stc15
报错鸟,找不到otg相关内容,
termux给予root权限,再次尝试,还是报错找不到,于是又从CH340官网,下载安卓的驱动,安装好其中的demo.APK,进去扫描设备,发现设备地址是/dev/bus/usb/001/002/,(如果多次插拔后面数字会对应增加)
于是怀疑是不是和linux中com口设备地址不一样导致,查找stcgal源码中/dev/ttyUSB0,尝试把它替换为/dev/bus/usb/001/002/
再次在运行命令,这回还是报错,端口配置错误,怀疑是通讯协议的问题
想尝试从其他源码中看出stc通信协议的其他相关内容,无果,怪自己才疏学浅呀。
第四,尝试是不是可以通过API来访问,参考以下链接termux中提供的内容搞就是了
链接:
https://wiki.termux.com/wiki/Termux-usb
4.1,手机下载安装好termux-api.APK(建议用F-Droid里的,使用签名不一样,可能会导致其他问题)
4.2,termux里命令安装
pkg install termux-api libusb -y
4.3,命令termux-usb -l,这回可见它列出otg设备
4.4,命令termux-usb -r /dev/bus/usb/001/002,弹出权限,授予
4.5, 按前面termux链接内容搞, 家目录下建立usbtest.c,复制相关内容并gcc编译。
4.6,运行命运看下
termux-usb -e ./usbtest /dev/bus/usb/001/002
虽然有其它设备信息错误,但是这里是是可以看出版本号vid和PID是和CH340demo.apk中给出的一样,
第五,最后总结,探讨一下。
5.1,既然CH340官方安卓驱动中提供有apk源码和配置文档,那是不是在源码中加入stc的通信协议,实现hex文件的烧录呢?
5.2,再者termux-usb可以识别出otg设备,那是不是可以在testusb.c中加入stc通信协议和写入hex相关内容就可以呢呢?
5.3,又或者能否把stcgal这个库改为适配termux,我感觉是源码中缺少权限导致,如果能搞定像termux-api那样,出现usb2.0-seriel的授权,那么这个库应该可以使用上?
手机毕竟是手机,玩玩还是可以的,简单的代码高亮,提示等功能可以通过代码编辑器,C++编辑器等apk软件实现,vim也可以,就这样,才疏学浅,咋都不懂,蹭一帖,不废话了,万一哪天有大婶解决了一下也挺好了,谢谢观看。
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
打赏
-
查看全部打赏
|