![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
嵌入式
文章平均质量分 79
饭后吃西瓜
这个作者很懒,什么都没留下…
展开
-
NEON加速im2col+gemm的卷积推理
前言主流框架包括caffe、tf、darknet实现卷积的时候不是直接进行卷积计算,而是往往采用im2col+gemm的方式来进行加速,加速的思路是“空间换时间”提高读取数据过程cache的命中。本文主要利用ARM的NEON汇编指令来加速darknet框架的CPU卷积计算darknet相关卷积实现原理具体的im2col原理卷积实现时,卷积核第一个元素与经过im2col操作后的feature map的第一行对应的的每个元素先后分别相乘,结果值分别存到不同位置,如图中所示。然后以此类推,卷积核第二个原创 2020-09-26 22:28:34 · 2240 阅读 · 0 评论 -
gdb远程调试
前言学会调试生成的程序是一种能力,而使用好工具更是能力的体现。想必gdb不用过多介绍。本文主要介绍如何用gdb命令行远程调试目标板上的程序以及如何配合vscode可视化远程调试目标板上的程序编译安装下载链接我下载的是7.8.1,好像说新版的不太好。下载好之后解压进入,执行下述命令进行配置安装:hsq@ares:~$ cd gdb-7.8.1/hsq@ares:~/gdb-7.8.1$...原创 2020-04-29 13:44:32 · 6664 阅读 · 1 评论 -
NEON初步使用
前言指令集并行是CPU的优化加速的一个方向,在ARM芯片主要是利用NEON指令集实现指令集并行NEON简介NEON就是高级SIMD,单指令多数据,适用于图像、音频等数据处理。ARMv6就叫SIMD,ARMv7开始叫NEON,aarch64又有点不一样,下文只针对ARMv7或者ARMv8 aarch32的NEON进行NEON有32个64位长的寄存器(D0-D31,每个D可以装2个浮点数据)...原创 2020-04-28 22:43:00 · 1901 阅读 · 0 评论 -
aarch64下运行aarch32程序
前言能否在arm芯片的aarch64模式下运行aarch32的程序呢?查看我们先查看两个分别用gcc-arm-linux-gnueabihf和aarch64-linux-gnu编译出来两个程序文件appv7和appv8的文件信息hsq@ares:~$ file appv7#查看appv7的文件信息appv7: ELF 32-bit LSB executable, ARM, EABI5 v...原创 2020-04-26 23:15:31 · 6054 阅读 · 1 评论 -
树莓派3B+的uboot启动内核
前言 入手一个树莓派Raspberry 3B+后准备拿来当学习嵌入式Linux及深度学习边缘计算的板子,从BootLoader到Linux内核再到深度学习推理框架。本文主要是让树莓派启动Linux内核后开启一个命令行窗口,旨在了解系统启动过程。不用树莓派官方提供图形界面系统。中间走了很多坑,让我们一步步来捋一捋。树莓派的启动流程分析启动流程[1]First stage bootlo...原创 2020-04-25 22:22:56 · 7562 阅读 · 5 评论 -
GCC和Makefile
前言大型项目往往会用到Makefile或者CMake。对于个人而言除了只会make之外,平时用Makefile来管理不大的项目确实很方便,可以让我们告别各种IDE的配置。该文仅作为个人学习记录常用GCC编译选项在使用gcc、g++编译C/C++程序的时候会涉,下面列出常用选项参考链接-o 指定文件名gcc test.c -o test#指定生成的可执行文件的文件名-W 指定警告信...原创 2020-03-12 15:48:54 · 381 阅读 · 0 评论 -
树莓派SD卡手动格式化
前言在使用树莓派利用SD卡启动系统的过程中,如何配置一张新买的空SD卡也是一个必不可少的技能。本文主要是介绍如何将SD卡分成boot和root两个分区,操作流程主要分为分区、格式化两步操作流程分区查看插入的SD卡情况,可以看出目前插入了一张32G(29G)的SD卡,系统分配给其的名字是/dev/sdb,目前存在1个分区,名字分别为/dev/sdb1,格式是W95 FAT32 (LBA)...原创 2020-03-07 21:11:57 · 10009 阅读 · 0 评论 -
交叉编译器命名规律及使用
什么是交叉编译器交叉编译器可以使我们在主机上编译出可以在嵌入式设备上运行的程序下载地址arm官方提供的下载地址在这:链接 linkubuntu直接apt-get下载sudo apt-get install gcc-aarch64-linux-gnu#安装64位用于操作系统的交叉编译器,gcc版本是5.4,安装位置在/usr/bin sudo apt-get instal...原创 2020-03-06 23:34:54 · 861 阅读 · 0 评论 -
ARM芯片名字关系
前言 一款ARM芯片相关的名字太多,经常搞不清楚都分别代表什么,本文就是梳理一下名字的含义层次并着重回顾一下芯片架构。 BCM2837是产品的名字,是博通公司的一款SoC(CPU+RAM等外设都封装在一块SoC芯片里),这款SoC包含的CPU架构是ARMv8,这个CPU的名字是ARM Cortex-A53,aarch64和aarch32是ARMv8架构处理器的两种可选的执行状态,aarc...原创 2020-01-02 22:40:53 · 1468 阅读 · 0 评论