码迷,mamicode.com
首页 > 其他好文 > 详细

嵌入式下的深度学习 Sparkfun Edge with TensorFlow(一)Hello World

时间:2020-03-21 23:39:58      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:ref   32位   结果   main   项目   运行   提取   就是   cortex-m   

嵌入式下的深度学习 Sparkfun Edge with TensorFlow(一)Hello World

硬件、软件环境

微控制器:Sparkfun Edge

  • 32位ARM Cortex-M4F处理器
  • 48MHz CPU时钟,带有TurboSPOT™的96MHz
  • 极低功耗:6uA / MHz
  • 1MB Flash
  • 384KB SRAM
  • 两个麦克风,一个三轴加速度计和一个摄像头连接器

TinyML链接:https://pan.baidu.com/s/1G_WB7QhnxcZJxpKpK_NBSA
提取码:mgj1

 

git clone https://github.com/tensorflow/tensorflow.git
cd tensorflow

编译

在拉下的repo中已经有了书中的源码,所以可以直接编译。

# 编译在板子上运行的二进制文件
make -f tensorflow/lite/micro/tools/make/Makefile TARGET=sparkfun_edge hello_world_bin

在这里就有问题了。make的过程中会连续下载几个包,由于服务器在国外,国内的速度特别慢,一旦中途因网络超时下载失败就需重新make,但第二次make时不会重新下载或断点下载上一次下载失败的包,缺包编译就会失败。这时在第二次make前在 tensorflow/lite/micro/tools/make/downloads 里删除刚才下载失败的目录,第二次make就会重新下载。

如果几次后还是不行成功编译,只能重新删除整个tensorflow的repo,再重新刚才的流程。

可以让ubuntu终端走国外代理完成这几个包的下载。

Linux 让终端走代理的几种方法 https://zhuanlan.zhihu.com/p/46973701

Linux终端代理方式  https://www.cnblogs.com/hi-eric/p/11563245.html

# 签名
python3 tensorflow/lite/micro/tools/make/downloads/AmbiqSuite-Rel2.2.0/tools/apollo3_scripts/create_cust_image_blob.py --bin tensorflow/lite/micro/tools/make/gen/sparkfun_edge_cortex-m4/bin/micro_speech.bin --load-address 0xC000 --magic-num 0xCB -o main_nonsecure_ota --version 0x0

# 生成真正在板子上运行的二进制文件
python3 tensorflow/lite/micro/tools/make/downloads/AmbiqSuite-Rel2.2.0/tools/apollo3_scripts/create_cust_wireupdate_blob.py --load-address 0x20000 --bin main_nonsecure_ota.bin -i 6 -o main_nonsecure_wire --options 0x1

 最后生成的main_nonsecure_wire.bin才是真正要烧进去的文件。

烧写

# 波特率
export BAUD_RATE=921600
# 设备号
export DEVICENAME="/dev/ttyUSB0"
# 烧写
python3 tensorflow/lite/micro/tools/make/downloads/AmbiqSuite-Rel2.2.0/tools/apollo3_scripts/uart_wired_update.py -b ${BAUD_RATE} ${DEVICENAME} -r 1 -f main_nonsecure_wire.bin -i 6

烧写前,必须先按住bootloader键(14键),按住14键的同时,按一下reset键,此时仍然按住14键不松,然后才能执行Python的烧写命令,同时,不要忘了sudo chmod 666 /dev/ttyUSB0,以给其足够的权限。

烧写器用的是沁恒的CH34x,Ubuntu的默认CH340驱动是有问题的,有可能烧不进去。解决办法:重新编译CH34x驱动并加载驱动。

$ git clone https://github.com/juliagoda/CH341SER.git
$ cd CH341SER/
$ make
$ sudo insmod ch34x.ko
$ sudo rmmod ch341

但是这是动态加载驱动的方式,所以每一次重启后,再运行最后两句重新加载驱动。

 

好了,至此,已经可以通过官方的开发方式或Arduino IDE的开发方式写工程了。

嵌入式下的深度学习 Sparkfun Edge with TensorFlow(一)Hello World

标签:ref   32位   结果   main   项目   运行   提取   就是   cortex-m   

原文地址:https://www.cnblogs.com/guangnianxd/p/12542184.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!