0
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心
发布
  • 发文章

  • 发资料

  • 发帖

  • 提问

  • 发视频

创作活动

完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>

3天内不再提示

Arm NEON编程技术上手指南

安芯教育科技 来源:极术社区 作者:yang 2022-12-06 09:09 次阅读

1 简介

本文旨在介绍Arm NEON技术,希望NEON初学者在阅读本文后能很快上手开始NEON编程

2 NEON概览

本节介绍NEON技术及一些背景知识。

2.1 什么是NEON?

NEON是指适用于Arm Cortex-A系列处理器的一种高级SIMD(单指令多数据)扩展指令集。NEON 技术可加速多媒体和信号处理算法(如视频编码/解码、2D/3D 图形、游戏、音频和语音处理、图像处理技术、电话和声音合成)。

NEON 指令可执行并行数据处理:

寄存器被视为同一数据类型的元素的矢量

数据类型可为:8 /16 /32/64 位整数,单精度(Arm 32位平台),单精度浮点/双精度浮点(Arm 64位平台)

指令在所有通道中执行同一操作

f70f27ee-7501-11ed-8abf-dac502259ad0.png
2.2 Arm 高级SIMD发展历史

f721b2c4-7501-11ed-8abf-dac502259ad0.png

2.3 为什么要用NEON

NEON提供:

支持整数和浮点操作,以确保适合从编解码器、高性能计算到 3D 图形等广泛应用领域。

与 Arm处理器紧密结合,提供指令流和内存的统一视图,编程比外部硬件加速器更简单。

3 Arm v8架构简介

Arm v8-A是一个非常重要的架构变化,它支持64位执行模式 “AArch64” ,并且带来了全新的64位指令集 “A64” 。同时,为了兼容Arm v7-A (32位架构)指令集,也引入了 “AArch32” 的概念。大部分Arm v7-A代码可以运行在Arm v8-A AArch32执行模式下。

本节会对Arm v8-A 架构NEON相关的特点做出一些介绍。此外,本节也会略微介绍在NEON编程时经常使用的CPU通用目的寄存器和CPU指令,但是重点依然是NEON技术。

3.1 寄存器

Arm v8-A AArch64有31个64位通用目的寄存器,每一个通用寄存器具有64位(X0-X30)或是32位模式(W0-W30)。其寄存器视图如下:

f732e5bc-7501-11ed-8abf-dac502259ad0.png

Arm v8-A AArch64有32个128位寄存器,也能当作32位Sn寄存器或是64位Dn寄存器使用。其寄存器视图如下:

f75fbd76-7501-11ed-8abf-dac502259ad0.png

3.2 指令集

Arm v8-A AArch32指令集是由A32(Arm指令,32 位固定长度指令集)和T32(Thumb指令集,16 位固定长度指令集;Thumb2指令集, 16/32位长度指令集)指令集组成。它是Arm v7 Cortex-A指令集的超集,因此Arm v8-A AArch32能后向兼容Arm v7-A以便运行早期软件。同时,为了维持与A64指令集的一致性,AArch32指令集又新增了NEON除法,加密指令扩展。

与AArch32指令集相比,AArch64指令集A64(32位固定长度)发生了很大变化,比如,它们具有完全不同的指令格式。但是在功能上来说,AArch64指令集基本上实现了AArch32指令集的全部功能,另外添加了NEON双精度浮点的支持。

3.3 NEON指令格式

现在大部分已经是Arm v8平台,因此本节只介绍AArch64 NEON指令格式。通用描述如下:

{}{} Vd., Vn., Vm.

这里:

——前缀,如S/U/F/P 分别表示 有符号整数/无符号整数/浮点数/布尔数据类型
——操作符。例如ADD,AND等。
——后缀,通常是有以下几种

P:将向量按对操作,例如ADDP

V:跨所有的数据通道操作,例如FMAXV

2:在宽指令/窄指令中操作数据的高位部分。例如ADDHN2,SADDL2。

ADDHN2:两个128位矢量相加,得到64位矢量结果,并将结果存到NEON寄存器的高64位部分。

SADDL2:两个NEON寄存器的高64位部分相加,得到128-位结果。

——数据类型,通常是8B/16B/4H/8H/2S/4S/2D等。B代表8位数据类型;H代表16位数据宽度;S代表32位数据宽度,可以是32位整数或单精度浮点;D代表64位数据宽度,可以是64位整数或双精度浮点。

下面列出具体的NEON指令例子:

UADDLP V0.8H, V0.16B

FADD V0.4S, V0.4S, V0.4S

更多内容请参考 Armasm_user_guide.pdf(http://infocenter.arm.com/help/topic/com.Arm.doc.dui0801g/DUI0801G_Armasm_user_guide.pdf)

13~15章介绍A32和T32指令。

16~20章介绍A64指令,其中第20章专门介绍NEON指令。

4 NEON编程基础

上面几章已经介绍了NEON的概念,硬件资源和指令集。现在我们可以开始使用NEON开始加速我们的应用了。使用NEON 技术通常有下列四种方式:

调用NEON优化过的库函数

使用编译器自动矢量化选项

使用NEON intrinsics指令

手写NEON汇编

4.1 调用库函数

用户只需要在程序中直接调用NEON优化过的库函数就可以了,简单易用。目前你有下列库可以选择:

Arm Compute library

一系列经过Arm CPU和GPU优化过的底层函数库。用于图像处理、机器学习计算机视觉。更多信息: https://developer.Arm.com/technologies/compute-library

Ne10开源库

由Arm主导开发的,目前提供了比较通用的数学函数,部分图像处理函数,以及FFT函数。http://projectne10.github.io/Ne10/

4.2 自动矢量化

在GCC编译器选项中有自动矢量化编译选项可以帮助现有的代码编译生成NEON代码。GNU GCC提供一系列的选项,有的能提升性能,有的能降低生成可执行文件的代码大小。

对于每一行代码,有很多种汇编指令可以选择。编译器在寄存器、堆栈空间、代码大小、编译时间、便于调试、指令执行时间等许多选项中必须有所取舍,这样才能生成最优的映像文件。

4.3 NEON intrinsics

NEON intrinsics可以视作在NEON指令上面封装了一层接口。当用户在C程序中调用NEON intrinsics接口时,编译器会自动生成相关的NEON指令。

NEON intrinsics可以跨Arm v7-A/v8-A运行。只要编程一次,就可以借助编译器生成相应的NEON代码。

如果用户在代码中使用了Arm v8-A AArch64特有的NEON指令,只要如下例所示,用宏定义(__aarch64__)将这部分代码分隔即可。

下面是NEON intrinsics的一个例程。


//下面是浮点数组的加法,假设count为4的整数倍

#include

voidadd_float_c(float*dst,float*src1,float*src2,intcount)
{
inti;
for(i=0;i< count; i++)
         dst[i] = src1[i] + src2[i];
 }

 void add_float_neon1(float* dst, float* src1, float* src2, int count)
 {
     int i;
     for (i = 0; i < count; i += 4)
     {
         float32x4_t in1, in2, out;
         in1 = vld1q_f32(src1);
         src1 += 4;
         in2 = vld1q_f32(src2);
         src2 += 4;
         out = vaddq_f32(in1, in2);
         vst1q_f32(dst, out);
         dst += 4;
// 下列代码只是描述如何使用AArch64专有代码的一个例子,不具有实际含义。
#if defined (__aarch64__)
         float32_t tmp = vaddvq_f32(in1);
#endif

     }
}
通过查看反汇编,在Arm v7-A下,可以看到vld1/vadd/vst1 NEON指令。在Arm v8-A下可以看到ldr/fadd/str NEON指令。

4.4 NEON汇编

NEON手写汇编主要有两种方式:

独立汇编文件

内嵌汇编

4.4.1 独立汇编文件

独立汇编文件可以用“.S”作为文件后缀,也可以用“.s”作为文件后缀。区别在于.S文件会经过C/C++预处理器处理,这样我们可以利用宏定义等C语言特性。

手写NEON汇编文件时,我们需要注意寄存器的保存。对于Arm v7/v8我们需要保存下列寄存器:

f76d6d36-7501-11ed-8abf-dac502259ad0.png

下面是Arm v7-A/v8-A NEON 汇编的一个例程。


//在头文件中定义
voidadd_float_neon2(float*dst,float*src1,float*src2,intcount);

下面是手写汇编代码,保存到.S文件中

//Armv7-A/Armv8-AAArch32版本
.text
.syntaxunified

.align4
.globaladd_float_neon2
.typeadd_float_neon2,%function
.thumb
.thumb_func

add_float_neon2:
.L_loop:
vld1.32{q0},[r1]!
vld1.32{q1},[r2]!
vadd.f32q0,q0,q1
subsr3,r3,#4
vst1.32{q0},[r0]!
bgt.L_loop

bxlr

//Armv8-AAArch64版本
.text

.align4
.globaladd_float_neon2
.typeadd_float_neon2,%function

add_float_neon2:

.L_loop:
ld1{v0.4s},[x1],#16
ld1{v1.4s},[x2],#16
faddv0.4s,v0.4s,v1.4s
subsx3,x3,#4
st1{v0.4s},[x0],#16
bgt.L_loop

ret
更多代码请参考: https://github.com/projectNe10/Ne10/tree/master/modules/dsp

4.4.2 内嵌汇编

顾名思义,内嵌汇编是和C代码紧密结合在一起的一种方式。我们可以直接把汇编代码内嵌在C/C++代码中,我们可以在需要NEON的地方即时添加。
优点:

过程调用规则简单,不需要自己手动保存寄存器。

可以使用 C/C++ 变量和函数,因此它能非常容易地整合到 C/C++ 代码

缺点:

内嵌汇编有一套复杂的语法规则

NEON代码内嵌在C/C++代码中,不易于移植到其他平台

例程:


//Armv7-A/Armv8-AAArch32
voidadd_float_neon3(float*dst,float*src1,float*src2,intcount)
{
asmvolatile(
"1:
"
"vld1.32{q0},[%[src1]]!
"
"vld1.32{q1},[%[src2]]!
"
"vadd.f32q0,q0,q1
"
"subs%[count],%[count],#4
"
"vst1.32{q0},[%[dst]]!
"
"bgt1b
"
:[dst]"+r"(dst)
:[src1]"r"(src1),[src2]"r"(src2),[count]"r"(count)
:"memory","q0","q1"
);
}

//Armv8-AAArch64
voidadd_float_neon3(float*dst,float*src1,float*src2,intcount)
{
asmvolatile(
"1:
"
"ld1{v0.4s},[%[src1]],#16
"
"ld1{v1.4s},[%[src2]],#16
"
"faddv0.4s,v0.4s,v1.4s
"
"subs%[count],%[count],#4
"
"st1{v0.4s},[%[dst]],#16
"
"bgt1b
"
:[dst]"+r"(dst)
:[src1]"r"(src1),[src2]"r"(src2),[count]"r"(count)
:"memory","v0","v1"
);

}
更多例程请参考libyuv

4.5 NEON intrinsics和NEON汇编

NEON intrinsics和NEON手写汇编是最常使用的NEON优化方式。

下面就这两种方式的优缺点做一些简单对比。

NEON 汇编 NEON intrinsic
性能 对于指定平台,汇编总是呈现最好性能。 现在的编译器已经能得到媲美手工汇编的性能。
可移植性 Arm v7-A/v8-A平台 具有不同的汇编格式。即使在Arm v8-A平台,汇编程序可能也需要针对Cortex A53/A57微架构做出不同调整,才能呈现最好性能。 选择合适的编译器选项,一次编程即可以很容易实现跨平台并针对该平台微架构调整性能,例如Arm v7-A Cortex A9/A7/A15和Arm v8-A Cortex A53/A57。
可维护性 相比C语言,较难编程,可读性较差 跟C语言类似,比较容易编程与维护

这只是简单的优缺点对比,当应用NEON的情景比较复杂时,会有更多的特殊情况出现,在另一篇文章“Arm NEON 优化”中,我会对这个问题进行进一步分析。

有了以上基础,选择一种NEON实现方式,现在可以开始NEON编程之旅了!





审核编辑:刘清

  • arm
    arm
    +关注

    关注

    131

    文章

    7348

    浏览量

    357361
  • SIMD
    +关注

    关注

    0

    文章

    25

    浏览量

    10052
  • NEON技术
    +关注

    关注

    1

    文章

    8

    浏览量

    5955
收藏 人收藏

    评论

    相关推荐

    Quick-Jack快速上手手册

    NXP 智能手机 Quick-Jack 快速上手指南
    发表于 12-06 06:13

    ARM技术上有独到之处,注重灵活的配置和良好的软件兼容性

    本帖最后由 dianzijie5 于 2011-5-31 10:01 编辑 ARM技术上有独到之处,注重灵活的配置和良好的软件兼容性
    发表于 05-31 09:58

    从零开始学CPLD和Verilog HDL编程技术教程免费下载

    从零开始学系列之从零开始学CPLD和Verilog HDL编程技术非常不错,大家支持下下载地址:https://bbs.elecfans.com/jishu_264455_1_1.html
    发表于 02-06 16:42

    [从零开始学CPLD和Verilog HDL编程技术]高清版

    ` 本帖最后由 zgzzlt 于 2012-8-15 21:51 编辑 [从零开始学CPLD和Verilog HDL编程技术]`
    发表于 08-15 08:39

    Borland_C++_Builder高级编程技术

    Borland_C++_Builder高级编程技术
    发表于 08-17 14:32

    单片机软件设计中的几种基本编程技术

    单片机软件设计中的几种基本编程技术
    发表于 08-17 23:09

    LINUX系统分析与高级编程技术

    本帖最后由 柠檬守护 于 2016-2-19 15:34 编辑 LINUX系统分析与高级编程技术(上)
    发表于 08-20 15:04

    vga使用编程技术

    vga使用编程技术
    发表于 03-21 19:04

    寻 PowerPC下 Vxworks Web Server10编程技术人员。发包一个小项目

    寻 PowerPC下 Vxworks Web Server10编程技术人员。发包一个小项目,最好成都市内。有效期一周。联系方式QQ: 2635597351
    发表于 10-14 13:00

    Labview高级编程技术(官方原版)

    Labview高级编程技术(官方英文原版) 希望对大家有帮助
    发表于 10-26 23:33

    labview6.1编程技术实用教程

    labview6.1编程技术实用教程
    发表于 12-17 09:19

    资料推荐:nRF51822上手指南

    nRF51822上手指南
    发表于 06-12 13:48

    求:实时图像传输编程技术及应用,如有解决方案请联系, [email]bhm888888@126.c

    求:实时图像传输编程技术及应用,如有解决方案请联系,bhm888888@126.com
    发表于 06-05 15:06

    急求:实时图像传输编程技术及应用,如有解决方案请联系,邮箱: [email]bhm88888

    急求:实时图像传输编程技术及应用,如有解决方案请联系,邮箱: bhm888888@126.com电话:15888890988鲍生
    发表于 06-05 15:09

    [从零开始学CPLD和Verilog.HDL编程技术].李建清.

    [从零开始学CPLD和Verilog.HDL编程技术].李建清.
    发表于 04-20 08:01

    经典UML状态图实用C++设计嵌入式系统事件驱动型编程技术资料分享

    UML状态图的实用C/C++设计嵌入式系统的事件驱动编程技术第二版内含国外版本和国内翻译版本
    发表于 04-24 14:34

    什么是采用反熔丝技术的FPGA?

    在当今快速发展的可编程门阵列技术中,有三种比较典型的编程技术,它们是SRAM编程技术、antifuse编程技术及EPROM或EEPROM编程技术。反熔丝(antifuse)技术的代表产品有Actel
    发表于 10-25 08:21

    求野火I.MX RT1052上手指南

    那位大神有没有野火 I.MX RT1052 上手指南啊?
    发表于 04-02 06:24

    求正点原子号令者I.MX RT1052的上手指南

    谁能介绍一下I.MX RT1052 号令者呢?有没有正点原子 I.MX RT1052 号令者上手指南 啊?
    发表于 04-02 06:26

    分享一款不错的基于SRAM编程技术的PLD核心可重构电路结构设计

    CPLD的核心可编程结构介绍基于SRAM编程技术的PLD电路结构设计
    发表于 04-08 06:51

    如何设计具有相似功能且基于SRAM编程技术的电路结构?

    CPLD的核心可编程结构是怎样的?如何设计具有相似功能且基于SRAM编程技术的电路结构?基于SRAM编程技术的PLD电路结构是怎样设计的?基于SRAM编程技术的P-Term电路结构是怎样设计的?基于SRAM编程技术的可编程互连线电路结构是怎样设计的?
    发表于 04-14 06:51

    如何利用FPGA编程技术实现PCM编码原理?

    PCM编码原理与规则是什么?如何利用FPGA编程技术实现PCM编码原理?机场监视监控网络中低速接入应用
    发表于 04-15 06:38

    如何利用GOOP编程技术对前熔断丝进行测试?

    请问如何利用GOOP编程技术对前熔断丝进行测试?
    发表于 04-15 06:31

    如何采用PCM编码原理及FPGA编程技术实现PCM数字基群接口传输低速数据的接入

    采用PCM编码原理及FPGA编程技术实现PCM数字基群接口传输低速数据的接入
    发表于 04-30 07:09

    程控电源技术和应用指南是什么?

    线性可编程电源工作原理是什么?程控电源技术和应用指南是什么?
    发表于 05-08 06:55

    ARM Neon是什么

    定义“ARM Advanced SIMD”,nick-named“NEON”, it provides:(1)、A set of interesting ...
    发表于 07-16 08:15

    SQL编程技术的特点有哪些

    SQL编程技术可以有效的克服SQL语言实现复杂应用方面的不足,提高应用系统和数据管理系统间的互操作性。SQL的特点之一是在交互式和嵌入式二种不同的使用方式下, SQL的语法结构基本上是一致的。嵌入式
    发表于 12-22 07:04

    基于嵌入式实时操作系统的编程技术之资源同步介绍

    《基于嵌入式实时操作系统的编程技术》笔记清单:第三章任务划分.《基于嵌入式实时操作系统的编程技术》笔记清单:第四章任务设计.《基于嵌入式实时操作系统的编程技术》笔记清单:第五章中断服务程序设计
    发表于 12-22 06:30

    单片机编程技术学习指南

    单片机编程技术学习攻略学习与应用单片机的高潮正在工厂、学校及企事业单位大规模地兴起。过去习惯于传统电子领域的工程师、技术员正面临着全新的挑战,如不能在较短时间内学会单片机,势必会被时代所遗弃,只有
    发表于 02-16 07:08

    NEON汇编与NEON intrinsics编程的优缺点比较

    1 简介ARM NEON编程主要有两种最常用的方式手写汇编和intrinsics。本文将对比NEON汇编与NEON intrinsics编程的优缺点。2 NEON汇编与intrinsicsNEON
    发表于 03-30 10:46

    编程指南

    请提供一下《CSU C编程指南》、《CSU ASM编程指南》,找了很多地方都没下载的。richocean@petalmail.com
    发表于 01-03 15:49

    PLC控制系统的编程技术

    介绍了可编程序控制器控制系统开发过程中,PLC梯形图编程要注意的问题及相应的编程技术。关键词:可编程序控制器;控制系统;梯形图;编程技术
    发表于 05-31 14:28 15次下载

    labview 6.1编程技术实用教程

    labview 6.1编程技术实用教程 本书共18章
    发表于 05-05 11:21 71次下载

    ModelSim快速上手指南

    ModelSim快速上手指南 快速上手四部曲:建立Project、引進HDL Files、Compile、模擬(Simulate/Loading and Run)
    发表于 05-08 17:29 76次下载

    基于MATCOM的MATLAB与VC混合编程技术研究

    研究了基于MATCOM的MATLAB与VC混合编程技术,提出了一种简便的设置MATCOM环境的方法,介绍了MATCOM提供的一个方便调试工具——矩阵查看器及其具体使用方法。结合实例,详细介绍了基
    发表于 07-05 16:43 18次下载

    数控测井软件中的多线程编程技术

    为满足实时测井需求,提高系统资源的利用率和系统性能,在数控测井软件开发中将多线程编程技术应用其中,并对多线程编程技术应用的可行性和必要性进行了分析。给出了软件的模块框图及多线程间关系,利用MFC的自定义类封装和实现各个线程,在线程中分别实现串
    发表于 01-14 17:17 32次下载

    西门子Hipath 3000数字程控交换机编程指南

    为了让我们的代理商更好、更快地掌握Hipath 3550的安装技术,我们编了这套《Hipath 3550安装编程指南》。该《指南》讲述了Hipath3550的常用安装编程技术及一些常见问题的处理方法。但它
    发表于 04-10 15:19 61次下载

    VB调用MATLAB编程技术与干涉图像处理分析

    文章针对干涉图像分析中存在的问题,首先介绍了VB与MATLAB ActiveX自动化服务器的接口技术。然后根据干涉图像处理的需求,将VB和 MATLAB的混合编程技术用于开发干涉图像处理软件系统,
    发表于 04-19 15:56 124次下载
    VB调用MATLAB<b>编程技术</b>与干涉图像处理分析

    DELPHI串行通信编程技术与实现

    介绍了基于DELPHI 环境的多种串行通信编程方法及编程技术,着重讨论了采用MSComm 控件实现串行通信的基本方法、技巧,并探讨了微机与多单片机系统间实时远程通信的编程实现。
    发表于 09-09 15:48 55次下载
    DELPHI串行通信<b>编程技术</b>与实现

    Visual C++编程技术文档

    Visual C++编程技术文档!资料来源网络,如有侵权,敬请见谅
    发表于 11-20 15:00 2次下载

    Visual C# 2005编程技术文档

    Visual C# 2005编程技术文档!资料来源网络,如有侵权,敬请见谅
    发表于 11-20 14:50 0次下载

    Visual Basic编程技术文档

    Visual Basic编程技术文档!资料来源网络,如有侵权,敬请见谅
    发表于 11-20 14:50 2次下载

    Visual Basic+SQL Serve编程技术文档

    Visual Basic+SQL Serve编程技术文档r!资料来源网络,如有侵权,敬请见谅
    发表于 11-20 14:49 1次下载

    SQL Server2005编程技术文档

    SQL Server2005编程技术文档!资料来源网络,如有侵权,敬请见谅
    发表于 11-20 14:49 0次下载

    PHP编程技术文档

    PHP编程技术文档!资料来源网络,如有侵权,敬请见谅
    发表于 11-20 14:49 2次下载

    Java编程技术文档

    Java编程技术文档!资料来源网络,如有侵权,敬请见谅
    发表于 11-20 14:48 0次下载

    javascript编程技术文档介绍

    javascript编程技术文档!资料来源网络,如有侵权,敬请见谅
    发表于 11-20 15:19 1次下载

    Java Web开发编程技术文档

    Java Web开发编程技术文档!资料来源网络,如有侵权,敬请见谅
    发表于 11-20 15:19 0次下载

    Dreamweaver编程技术文档

    Dreamweaver编程技术文档!资料来源网络,如有侵权,敬请见谅
    发表于 11-20 15:14 2次下载

    ASP.NET 2.0编程技术文档

    ASP.NET 2.0编程技术文档!资料来源网络,如有侵权,敬请见谅
    发表于 11-20 15:14 0次下载

    Halcon9.0编程技术详解

    Halcon9.0编程技术详解Halcon9.0编程技术详解
    发表于 12-22 15:20 9次下载

    键盘接口编程技术

    本文用通用性的实例对常用键盘接口的编程问题作一个全面、细致的分析,并给出两个通用的键盘编程模式,以帮助读者对键盘编程技术有一个深刻的理解。
    发表于 03-28 17:59 8次下载

    Multicore多核编程技术

    Multicore多核编程技术,感兴趣的可以看看。
    发表于 06-01 17:28 13次下载

    Flash单片机自编程技术的探讨

    Flash单片机自编程技术的探讨
    发表于 01-14 12:32 6次下载

    基于Mideva编译器的MATLAB与VC_混合编程技术_柴西林

    基于Mideva编译器的MATLAB与VC_混合编程技术_柴西林
    发表于 02-27 17:42 0次下载

    Linux多线程编程技术在掷骰子游戏模拟程序中的应用_申时全

    Linux多线程编程技术在掷骰子游戏模拟程序中的应用_申时全
    发表于 02-28 20:38 0次下载

    WinCE多线程编程技术在无纸记录仪中的应用

    WinCE多线程编程技术在无纸记录仪中的应用
    发表于 10-25 09:50 2次下载
    WinCE多线程<b>编程技术</b>在无纸记录仪中的应用

    嵌入式DSP系统C语言硬件编程技术简介

    嵌入式DSP系统C语言硬件编程技术简介(嵌入式开发环境配置)-该文档为嵌入式DSP系统C语言硬件编程技术简介文档,是一份很不错的参考资料,具有较高参考价值,感兴趣的可以下载看看………………
    发表于 07-30 09:14 7次下载
    嵌入式DSP系统C语言硬件<b>编程技术</b>简介

    嵌入式DSP系统C语言硬件编程技术总结

    嵌入式DSP系统C语言硬件编程技术总结(北京嵌入式开发招聘)-该文档为嵌入式DSP系统C语言硬件编程技术总结文档,是一份很不错的参考资料,具有较高参考价值,感兴趣的可以下载看看………………    
    发表于 07-30 12:55 11次下载
    嵌入式DSP系统C语言硬件<b>编程技术</b>总结

    嵌入式DSP系统C语言硬件编程技术

    嵌入式DSP系统C语言硬件编程技术(计算机三级嵌入式开发技术)-该文档为嵌入式DSP系统C语言硬件编程技术总结文档,是一份很不错的参考资料,具有较高参考价值,感兴趣的可以下载看看………………
    发表于 07-30 14:04 27次下载
    嵌入式DSP系统C语言硬件<b>编程技术</b>

    基于pc机实现的可视化编程技术资料

    一种基于pc机实现的可视化编程技术,适用于110kv以下成套保护测控装置的研发
    发表于 12-16 18:09 0次下载

    单片机原理与应用及C51编程技术

    单片机原理与应用及C51编程技术课件下载
    发表于 08-29 10:21 9次下载

    NXP ARM片外Flash在线编程参考指南

    电子发烧友网站提供《NXP ARM片外Flash在线编程参考指南.pdf》资料免费下载
    发表于 10-14 15:12 0次下载
    NXP <b>ARM</b>片外Flash在线<b>编程</b>参考<b>指南</b>

    适用于TI mmWave sensor的CCS在线调试脚本上手指南

    适用于TI mmWave sensor的CCS在线调试脚本上手指南
    发表于 10-28 11:59 0次下载
    适用于TI mmWave sensor的CCS在线调试脚本<b>上手指南</b>

    RT-Thread文档_Keil 模拟器 STM32F103 上手指南

    RT-Thread文档_Keil 模拟器 STM32F103 上手指南
    发表于 02-22 18:22 0次下载
    RT-Thread文档_Keil 模拟器 STM32F103 <b>上手指南</b>

    RT-Thread文档_RT-Thread 潘多拉 STM32L475 上手指南

    RT-Thread文档_RT-Thread 潘多拉 STM32L475 上手指南
    发表于 02-22 18:23 0次下载
    RT-Thread文档_RT-Thread 潘多拉 STM32L475 <b>上手指南</b>

    RT-Thread文档_野火霸道 STM32F103 上手指南

    RT-Thread文档_野火霸道 STM32F103 上手指南
    发表于 02-22 18:23 0次下载
    RT-Thread文档_野火霸道 STM32F103 <b>上手指南</b>

    RT-Thread文档_正点原子 nano STM32F103 上手指南

    RT-Thread文档_正点原子 nano STM32F103 上手指南
    发表于 02-22 18:24 0次下载
    RT-Thread文档_正点原子 nano STM32F103 <b>上手指南</b>

    RT-Thread文档_野火挑战者 STM32F429 上手指南

    RT-Thread文档_野火挑战者 STM32F429 上手指南
    发表于 02-22 18:24 2次下载
    RT-Thread文档_野火挑战者 STM32F429 <b>上手指南</b>

    RT-Thread文档_正点原子探索者 STM32F407 上手指南

    RT-Thread文档_正点原子探索者 STM32F407 上手指南
    发表于 02-22 18:25 3次下载
    RT-Thread文档_正点原子探索者 STM32F407 <b>上手指南</b>

    RT-Thread文档_正点原子阿波罗 STM32F429 上手指南

    RT-Thread文档_正点原子阿波罗 STM32F429 上手指南
    发表于 02-22 18:25 0次下载
    RT-Thread文档_正点原子阿波罗 STM32F429 <b>上手指南</b>

    RT-Thread文档_野火 I.MX RT1052上手指南

    RT-Thread文档_野火 I.MX RT1052 上手指南
    发表于 02-22 18:25 1次下载
    RT-Thread文档_野火 I.MX RT1052<b>上手指南</b>

    RT-Thread文档_正点原子 I.MX RT1052号令者上手指南

    RT-Thread文档_正点原子 I.MX RT1052 号令者上手指南
    发表于 02-22 18:26 1次下载
    RT-Thread文档_正点原子 I.MX RT1052号令者<b>上手指南</b>

    RT-Thread文档_Nordic BSP 上手指南

    RT-Thread文档_Nordic BSP 上手指南
    发表于 02-22 18:26 0次下载
    RT-Thread文档_Nordic BSP <b>上手指南</b>

    RT-Thread文档_英飞凌 Psoc6-CY8CKIT-062S2-43012上手指南

    RT-Thread文档_英飞凌 Psoc6-CY8CKIT-062S2-43012 上手指南
    发表于 02-22 18:27 0次下载
    RT-Thread文档_英飞凌 Psoc6-CY8CKIT-062S2-43012<b>上手指南</b>

    RT-Thread文档_其他开发板 上手指南

    RT-Thread文档_其他开发板 上手指南
    发表于 02-22 18:27 0次下载
    RT-Thread文档_其他开发板 <b>上手指南</b>

    采用PCM编码原理及FPGA编程技术实现PCM数字基群接口传

    采用PCM编码原理及FPGA编程技术实现PCM数字基群接口传输低速数据的接入 一、概述 ----高速传输系统中低速设备
    发表于 02-08 11:19 1505次阅读
    采用PCM编码原理及FPGA<b>编程技术</b>实现PCM数字基群接口传

    DSP/BIOS中的IO设备驱动编程技术

    DSP/BIOS中的IO设备驱动编程技术 介绍了DSP/BIOS中I/O设备驱动程序的编写,并给出了一个在TMS320C5402 DSK上开发语音处理程序的实例。    
    发表于 12-08 14:37 1748次阅读
    DSP/BIOS中的IO设备驱动<b>编程技术</b>

    DSP器件的现场可编程技术

    DSP器件的现场可编程技术 DSP问世以来,以其强大的功能、合理的价格已经被设计者广泛应用。但不同于FPGA器件的是,DSP并不是为现场可编程而开发的,因此,在嵌入了DSP器
    发表于 01-07 10:11 697次阅读
    DSP器件的现场可<b>编程技术</b>

    ARM7串口9位方式多机通信的编程技术

    ARM7串口9位方式多机通信的编程技术   1 主从式多机通信   所谓主从式多机系统,即在数个ARM(或单片机)中,有一个是主机,其余的为从机。从机要服从主
    发表于 04-12 14:09 2571次阅读
    <b>ARM</b>7串口9位方式多机通信的<b>编程技术</b>

    谈谈Zynq SoC里ARM NEON SIMD架构扩展集的使用

    在所有Zynq All Programmable SoC 的内部, 你都会发现一个双核的ARM Cortex -A9 MPCore处理器,而且Zynq SoC中的这两个处理器中都设有ARM NEON SIMD架构扩展集。
    发表于 02-10 12:15 2151次阅读
    谈谈Zynq SoC里<b>ARM</b> <b>NEON</b> SIMD架构扩展集的使用

    线编程技术 STC单片机的下载线设计

    本文首先介绍了在线编程技术,然后给出了基于STC单片机两种下载线设计电路,最后阐述了ISP下载线的性能特点。实践表明:本设计具有低成本、高灵活性,对单片机爱好者,尤其是初学者,具有很强的实用价值。
    发表于 04-20 11:13 3079次阅读
    线<b>编程技术</b> STC单片机的下载线设计

    关于Linux下多线程编程技术学习总结

    Linux下多线程编程技术 作为一个IT人员,不断的学习和总结是我们这个职业习惯,所以我会将每个阶段的学习都会通过一点的总结来记录和检测自己的学习效果,今天为大家总结了关于Linux下多线程编程技术
    发表于 04-22 03:12 1860次阅读
    关于Linux下多线程<b>编程技术</b>学习总结

    英特尔架构中的多线程优化和扩展并行性的编程技术

    有效并行缩减和扩展并行性的编程技术
    的头像 发表于 11-01 06:24 1619次阅读

    编程技术在网络芯片上的应用

    网络是数据中心里的交通枢纽,连接着所有运行应用业务的设备。没有网络,也就没有数据中心,没有互联网的今天,网络在数据中心里发挥着非常关键的作用,所以网络技术一直是热点,在不断发展进化着,其中就包含可编程技术
    发表于 08-23 17:48 910次阅读

    反向偏置霍尔效应开关的接近感应编程技术

    接近感应编程技术 本应用笔记假设用户正在对Allegro™完全集成的反向偏置霍尔效应开关进行编程,或者用户已经设计了合适的磁路来适应可编程单极霍尔效应开关的编程范围。通过控制施密特触发器的偏移量可以
    的头像 发表于 04-28 10:22 3882次阅读
    反向偏置霍尔效应开关的接近感应<b>编程技术</b>

    NEON编程中的一些常见优化技巧

      读过上一篇文章“ARM NEON快速上手指南”之后,相信你已经对ARM NEON编程有了基本的认识。但在真正利用ARM NEON优化程序性能时,还有很多编程技巧和注意事项。本文将结合本人的一些开发经历,介绍NEON
    的头像 发表于 12-12 09:11 502次阅读

    对比NEON汇编与NEON Intrinsics编程的优缺点

    对于初学者来说,Intrinsics比较易学易用。但是对于有汇编经验的开发者来说,可能更熟悉NEON汇编编程,切换到Intrinsics反倒需要有个适应过程。下文列出了实际开发中的一些问题。
    的头像 发表于 12-14 09:20 302次阅读

    CPU优化技术NEON 的基本原理、指令

    Arm NEON 是适用于 Arm Cortex-A 和 Cortex-R 系列处理器的一种 SIMD(Single Instruction Multiple Data)扩展架构。
    发表于 12-19 09:54 673次阅读

    从CPU优化技术层面讲解Arm NEON

    NEON intrinsic 函数提供了一种编写 NEON 代码的方法,该方法比汇编代码更易于维护,同时仍然可以控制生成的 NEON 指令。
    发表于 12-26 10:18 402次阅读

    下载硬声App