导航:首页 > 文档加密 > dsp程序的加密保护体制设计

dsp程序的加密保护体制设计

发布时间:2022-04-29 20:13:21

Ⅰ 嵌入式系统自学

嵌入式系统软件工程 方法实用技术及应用,免费下载

链接:https://pan..com/s/10No3IypKyLg01bV4T9b22w

pdf" data_size="50.30M" data_filelogo="https://gss0.bdstatic.com//yun-file-logo/file-logo-6.png" data_number="1" data_sharelink="https://pan..com/s/10No3IypKyLg01bV4T9b22w" data_code="56st">

提取码:56st

《嵌入式系统软件工程:基础知识、方法和应用》系统地阐述嵌入式系统软件工程所涉及的过程、方法、内容,以及在典型工业领域中的应用。全书内容分为两大部分:第一部分介绍嵌入式系统软件工程方法论,主要包括嵌入式软件的开发过程(需求工程、软件和系统体系结构、编程和测试等内容),开发和测试中所采用的标准,与安全性相关的软件系统的准入,以及嵌入式软件所涉及的法律问题:第二部分介绍嵌入式系统软件在汽车领域、轨道交通领域、航天领域、医疗器械、工业自动化、通信系统中的应用,在每个应用领域重点介绍具体应用领域的一些特定需求、技术和限制条件,以及它们对于嵌入式系统软件开发过程的影响。

Ⅱ 如何读取没有加密的DSP芯片程序

对芯片内部数据进行操作, 一般都需要硬件和软件搭配才能做好,对微芯的芯片,最简便的当然是采用在线方式来做(省硬件成本),相应软件则有许多 ,这里推荐 MATLAB8.8

Ⅲ 我才接触DSP,老师给了个DSP的程序,叫我在用CCS跑起来,麻烦高人指点下

答案:
1、CCS3.3是一个开发环境,不能够跑程序,程序弄好了要在芯片里面运行才能够有效果,如果不是直接下载,想在线调试(可以说在线硬件仿真),需要XDS100或者XDS510仿真器(更高级的XDS560 PLUS等等),一根JTAG连接线连接至DSP+一根USB连接线连接至PC;
2、开发Hello world 这个如果需要跑操作系统,还是需要很多学习的,但如果裸机加一个液晶也是可以做出hello world的,即通过SPI接口连接一块12864液晶,通过发送指令发送数据就能达到,看你的需求。
over

Ⅳ DSP程序如何加密

DSP内部FLASH是有密码的,在固化FLASH的时候就可以设置密码,这样是没有办法读出来的。

Ⅳ 什么是DSP+FPGA体系结构

DSP+FPGA体系结构介绍:
DSP(digital singnal processor):是一种独特的微处理器,是以数字信号来处理大量信息的器件。其工作原理是接收模拟信号,转换为0或1的数字信号,再对数字信号进行修改、删除、强化,并在其他系统芯片中把数字数据解译回模拟数据或实际环境格式。它不仅具有可编程性,而且其实时运行速度可达每秒数以千万条复杂指令程序,远远超过通用微处理器,是数字化电子世界中日益重要的电脑芯片。它的强大数据处理能力和高运行速度,是最值得称道的两大特色。
FPGA:FPGA是英文Field-Programmable Gate Array的缩写,即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
DSP芯片,也称数字信号处理器,是一种特别适合于进行数字信号处理运算的微处理器器,其主要应用是实时快速地实现各种数字信号处理算法。根据数字信号处理的要求,DSP芯片一般具有如下主要特点:
(1)在一个指令周期内可完成一次乘法和一次加法;
(2)程序和数据空间分开,可以同时访问指令和数据;
(3)片内具有快速RAM,通常可通过独立的数据总线在两块中同时访问;
(4)具有低开销或无开销循环及跳转的硬件支持;
(5)快速的中断处理和硬件I/O支持;
(6)具有在单周期内操作的多个硬件地址产生器;
(7)可以并行执行多个操作;
(8)支持流水线操作,使取指、译码和执行等操作可以重叠执行。
当然,与通用微处理器相比,DSP芯片的其他通用功能相对较弱些。

Ⅵ 嵌入式cpu,mcu,soc,dsp之间的区别和联系

DSP、MCU、FPGA、ARM、CPU简介
?
DSP:用于实现数字信号处理的微处理器芯片。
?
MCU:微控制器,又称单片机
?
FPGA:现场可编程门阵列。
?
ARM:采用ARM架构的微处理器。
CPU:中央处理单元(CentralProcessingUnit)的缩写
CPU主要由运算器、控制器、寄存器组和内部总线等构成
总之一句话CPU无处不在。
嵌入式系统定义:根据国际电气和电子工程师协会(IEEE)的定
义,嵌入式系统是“控制、监视或者辅助设备、机器和车间运行的
装置”。
p
应用领域:单片机偏于一般的控制和事务型处理,而DSP适合数
字信号处理的各种运算,FPGA由于其极强的灵活性和适应性,一
般用于产品的原型开发,在航天领域有广泛应用。
ARM一般嵌入
一些微操作系统,如WindowsCE、Linux等,实时性强,提供简
单友好的形界面,便于扩展,有很好的移植性,主要用于复杂
控制。

Ⅶ 如何将DSP和MCU两者完美结合

按照传统方式,嵌入式应用中的数字信号处理器(DSP)相对于主微控制器(MCU)起从属作用。在这些


应用中,MCU用作系统控制器,而大量的数据处理留给DSP。例如,在音频或视频处理应用中有可能需要人


机界面管理,或者是整个系统的控制。


设计方案选择


为完成这些任务,有几种系统设计方案选择。


第一种方案将DSP和MCU芯片组合在印制电路板(PCB)上。这种方案成本高并且占用面积大,但是可


适当地调整每个芯片的尺寸以最大限度地满足系统需要。


第二种方案是一种将DSP和MCU组合在单个封装内的多芯片模块(MCM)。这种方案的局限性是,设计


工程师必须按“50/50”的时间比例分配给控制和DSP功能;例如,一旦DSP超出时间,MCU将不能完成计算


任务。像第一种方案选择一样,当DSP和MCU内核独立存在时,需要两套开发工具。


第三种方案是将DSP功能合并到一个MCU中。这种方案只适合于直接的信号处理应用。MCU的时钟频率


和计算体系结构根本上不太适合大量的数字处理。有些MCU试图通过增加一个乘法和累加器(MAC)(DSP


的一个特点)来补偿上述不足。但是这种方案仍然缺乏高级应用所需要的基本的“由下至上 ”的体系结


构设计 。


最近,已经出现第四种方案它是将MCU的功能合并到一个DSP中。这类方案的一个例子是美国模拟器件


公司(Anolog Device Inc.,简称ADI)的Blackfin™ 处理器系列。这些新型处理器具有统一的经过优化的


体系结构,不仅适于数据计算,而且也适于有关的控制任务。通过平衡执行控制任务与复杂计算的要求,


这种方案可以根据系统实时处理的需要,完成100%的控制或者100%的计算任务。完成所有这一切任务不需


要在DSP模式和MCU模式之间的模式转换。


(translation of graphics)

System Control blocks=系统控制单元

Emulator & Test control=仿真器和测试控制

Voltage regulation=稳压电源

Event controller=事件控制器

Clock(PLL)=时钟

锁相环(PLL)

Memory dma=存储器

直接存储器存取(DMA)

Watchdog timer=监视定时器

Real Time clock=实时时钟

Core=内核

48 KB Instruction SRAM/Cache=48 KB指令

静态存储器(SRAM)

和高速缓存

32 KB Instruction rom="32" KB指令

只读存储器(ROM)

32 KB Data SRAM/Cache=32 KB数据

静态存储器(SRAM)

和高速缓存

4 KB Scratchpad ram="4" KB

高速暂存

随机存储器(RAM)

System Interface unit=系统接口单元

External Memory interface=外部存储器接口

High Speed I/O=高速I/O端口

Parallel Peripheral Interface/GPIO=并行外围接口(PPI)

和通用输入输出接口(GPIO)

UART=通用异步收发器

SPI=串行外围接口(SPI)

Hi-speed Serial ports=高速串行端口

PCI/USB=可编程通信接口(PCI)和通用串行总线(USB)

Timers 0/1/2=定时器0,1,2

Peripheral blocks=外围设备单元


一类新型的DSP也提供一套RISC指令系统集、存储器管理单元、事件控制器和多种外设以便在一颗单


芯片内提供大量计算和高效系统控制功能。


DSP与MCU比较


首先让我们回顾一下DSP和MCU的典型功能。DSP主要是在一单个时钟周期内尽可能完成多个MAC(乘法


和累加)操作。为了这一点,指令的操作代码通常是可变的超长的指令字(VLIW)。DSP也适于工作在紧


密、高效的环路中。另外,为了达到性能指标通常需要编写优化的汇编代码。由于DSP的算法程序一般装


在小容量、短等待时间的内置存储器中,所以代码密度通常不是大问题。


像DSP主要用于完成计算一样,MCU主要用于完成控制功能。同样地,典型的MCU应用包括许多条件操


作,在程序流程中频繁地跳转。通常使用C或者C++语言编写程序。代码密度极为重要,并且根据编译


码的长度来评估算法。存储器系统是基于高速缓存从而允许该系统设计工程师用较长等待时间从较大的存


储器中调用较大程序。利用基于高速缓存系统,程序员不需要考虑如何以及何时将指令输入到内核去执行



统一的DSP和MCU兼备两者的优点。它的指令集由16 bit,32 bit和64 bit操作码组成,但是由于最常


用的指令采用16 bit编码,所以编译代码密度大小与那些流行的MCU相同。另外,它包括一个存储器保护


功能以及指令高速缓存和数据高速缓存,作为整个存储器管理单元(MMU)的一部分。此外,容易提供一


套完整的C/C++开发工具,提供可选汇编语言或者全部汇编语言适合算法优化的编程。


支持RTOS


系统控制的一个重要方面是任务管理。实时操作系统(RTOS)逐渐地用于控制复杂系统中多种正在进


行的和同时发生的任务。通过提供对任务调度与管理的支持,RTOS简化了编程模式,这通常是由MCU控制


的,由于普通的DSP不具备支持RTOS需要的所有功能以便有效地控制。


然而,统一的DSP和MCU促进了RTOS几个重要功能的发展。第一个是限制访问功能以保护或者保留存储


单元。第二个是配备单独的堆栈和帧指针以减少操作系统(OS)请求以及中断和异常处理所需的等待时间


。第三个是具备单独的用户操作模式和管理员操作模式。过去,DSP按照等效于管理员操作模式工作,从


而允许在任何时间完全访问所有的系统资源。然而MCU提供类似的在用户操作模式,它允许在OS的顶层运


行应用软件。现在,在一个统一的体系结构下提供两种操作模式,因为增强的DSP系统能够限制用户应用


软件仅通过OS访问系统资源。


外围设备


MCU的一个优点是包含使用灵活和种类齐全的外围设备。作为通用的嵌入式控制器,它们通常具备可


编程输入输出(I/O)标志、定时器、串行接口和日益增加越来越复杂的标准接口。MCU外围设备的主要作


用是嵌入式控制,而不是大量计算。例如,一个实时时钟信号可以唤醒一只温度传感器用以采集环境温度


并且将一个延迟的信息通过I/O引脚反馈到MCU。然后,一个定时器的脉冲宽度调制(PWM)输出相应地能


够增加或者减小风扇电机的转速。


像MCU一样,统一的DSP和MCU具备一套系统控制外围设备(例如,实时时钟、多功能定时器、监视定


时器、双向标志位引脚)。然而,它还包括一些高速接口(例如,PCI、异步或者同步存储器控制器、USB


、并行视频接口)以便通过这些接口,与许多DMA通道配合快速搬移数据,从而有助于有效利用高速DSP内


核的信号处理能力。


电源管理


功耗控制一直是嵌入式控制器的一项功能。但是,当系统要求DSP具有优良的性能时,对其电源的选


择就不太理想。如果将独立的MCU和DSP芯片应用于电源敏感的场合,通常必须为每个芯片提供一个单独的


开关稳压器,因为这两个器件的内核电压经常不一致。这会导致降低电源变换效率和增加设计器件的引脚


数目,最终增加布线的复杂程度和解决方案的成本。此外,当MCU和DSP的内核集成到一个芯片上时,电源


解决方案本质上不是最佳的,因为它必须满足2个完全独立并具有不同负载特性处理器的需求。


将这种情况与统一的DSP和MCU相比较,它包含一个集成动态电源管理(DPM)控制器。由于它是只有


一个处理器的体系结构,所以该控制器能够完全适合给定应用的需求。它提供几种固有的电源模式以支持


多种系统性能等级。另外,对于未使用的时钟和L2存储器可选择性地禁止。该PLL的频率可在一个宽范围


(通常1倍~31倍)进行调节,以满足在DSP和MCU内部多层次的处理需求。最后能够调节电压(外部或者


通过一个集成的开关控制器)以提供指数式的节省功耗。


由于系统成本、开发容易、器件采购和升级能力的原因,设计工程师正趋向采用一种单芯片解决方案


用于嵌入式信号处理解决方案。这种单芯片解决方案必须能够同样好地完成DSP和MCU的功能,所以有必要


提出一种统一的处理器体系结构。面对MCU的挑战,比较简单的解决方案是将MCU的功能合并到一个高性能


的DSP内核,而不是与此相反。当今一个统一的DSP和MCU平台(由Blackfin™ DSP系列产品说明)已经投放

Ⅷ pid控制算法的DSP程序设计与实现

typedef struct PID {

int SetPoint; // 设定目标 Desired value

int Proportion; // 比例常数 Proportional Const
int Integral; // 积分常数 Integral Const
int Derivative; // 微分常数 Derivative Const

unsigned int LastError; // Error[-1]
unsigned int PrevError; // Error[-2]
unsigned int SumError; // Sums of Errors

// double Lastout; //上次输出
unsigned int E1; // e1>e2
unsigned int E2; //

int Pmax;//上限
int Pmin;//下限

} PID;

/*====================================================================================================
PID计算部分,遇限消弱积分PID防饱和,积分分离算法实现
=====================================================================================================*/

int PIDCalc( PID *pp, unsigned int NextPoint )
{
int dError,
Error;

Error = pp->SetPoint - NextPoint; //偏差
if (Error<=-pp->E1) return (pp->Pmin); //饱和
else if (Error>=pp->E1)
return (pp->Pmax);
else
{
dError = pp->LastError - pp->PrevError; // 当前微分
pp->PrevError = pp->LastError;
pp->LastError = Error;
if (Error>=pp->E2||Error<=-pp->E2) //分离
return (pp->Proportion * Error // 比例项
+ pp->Derivative * dError );//PD,考虑限幅
else //位置式
{
pp->SumError += Error; // 积分
return (pp->Proportion * Error // 比例项
+ pp->Integral * pp->SumError // 积分项
+ pp->Derivative * dError // 微分项 //PID
);
}
}
}

Ⅸ 给我一篇完整的dsp程序设计

随着DSP芯片功能的增强,已不再进行单纯的数字信号处理任务,而是作为一种MCU被广泛使用,控制板上各种资源,同时完成采集、计算、控制、通讯等任务。特别是当使用了TCP/IP或其它复杂通讯协议时,没有一个实时多任务操作系统是很难进行任务调度的。μC/OS-II作为一种源码公开的占先式实时多任务操作系统,总是执行处于就绪状态的优先级最高的任务,并支持Semaphore(信号量)、Mailbox(邮箱)、Message Queue(消息队列)等多种常用的进程间通信机制,是大多数高可靠嵌入式设备的首选。

2 开发环境简介
APCI5096是北京康拓工业电脑公司自行开发的一款DSP目标板,主要用于对模拟信号量的采样处理。该目标板以TMS320VC32为CPU,同时具有完备的输入/输出功能,可以实现30通道、16位、300KSPS的模拟输入。调试用编译器为TI公司的Code Composer ‘C3x-‘C4x,版本是4.10版。

3 移植过程
3.1 μC/OS-II系统结构
图1说明了μC/OS-II的软硬件体系结构。应用程序软件处于整个系统的顶层,只和μC/OS-II与处理器无关的代码以及μC/OS-II与应用相关的代码关联。这样保证了应用软件的可重用性。

μC/OS-II与处理器无关的代码提供了μC/OS-II的系统服务。利用这些API函数,应用程序可以进行内存管理、任务间的通信以及创建、删除任务等。μC/OS-II与应用相关的代码提供了对μC/OS-II本身的裁减,并可根据实际需要进行任务数、任务栈的大小等设置。

大部分的μC/OS-II代码是使用ANSI C语言书写的,因此μC/OS-II的可移植性较好。尽管如此,仍然需要使用C和汇编语言写一些处理器相关的代码。移植工作需要改写的是与处理器相关的代码,包括三个文件:OS_ CPU.H、OS_ CPU_ C�C、OS_ CPU_ A�ASM。重点是任务堆栈的初始化、任务切换时栈指针的调整。

3.2 OS_ CPU.H
在不同的处理器中有不同的字长,所以必须重新定义一系列数据类型以确保移植的正确性。在OS_ CPU�H文件中应完成:数据类型的重新定义、堆栈数据类型的定义、堆栈增长方向的定义、临界区开/关中断的方法、任务切换函数OS_TASK_SW的宏定义。

(1)数据类型的声明:在VC33中所有的整型数据(char、short、int、long)为相同的类型,用32位表示。浮点型数据(float、double)为相同类型,在VC33中用32位单精度浮点数表示。数据类型的重定义:
typedef unsigned char BOOLEAN;
typedef unsigned char INT8U;
typedef signed char INT8S;
typedef float FP32;
typedef double FP64;

(2)VC33栈的数据宽度为32位,采用上面重定义过的数据类型进行定义,确保栈数据类型的一致性。栈的数据类型声明:
typedef INT32U OS_ STK;

(3)μC/OS-II访问代码的临界区时需要先禁止中断,并且在访问完毕后重新允许中断。μC/OS-II利用两个宏来禁止和允许中断,通过状态寄存器的中断使能位开关中断。
cregister unsigned int ST; /*声明CPU内部寄存器*/
#define OS_ ENTER_ CRITICAL() asm(“ANDN 2000H, ST "); /*清中断使能位*/
#define OS_ EXIT_ CRITICAL() asm(“OR 2000H, ST "); /*置中断使能位*/

3.3 OS_ CPU_ C.C
在OS_ CPU_ C.C文件中主要完成的是OSTaskStkInit()函数,其余五个函数可以不进行处理。OSTaskStkInit()函数完成任务栈的初始化,使得任务栈的结构看起来如同在任务执行过程中发生过一次中断并将所有寄存器保存到堆栈一样。不同的编译器在函数调用时会有不同的入栈方法,如:参数和返回地址入栈顺序、参数之间入栈的顺序、参数利用寄存器还是堆栈保存等。在具体实现时还需要根据编译器的要求进行调整。

CCS函数调用时堆栈规则为:先将参数从左往右入栈、然后是函数返回地址入栈。依照此规则设计任务栈初始结构如图2。VC33共有28个寄存器,程序中应将寄存器全部入栈,在OSTaskStkInit中实现:

{
OS_ STK *stk; /*定义栈的数据结构*/
opt=opt;
stk=(OS_ STK *)ptos; /*装入栈顶指针*/
*stk=(OS_ STK)pdata; /*参数入栈*/
*++stk=(OS_ STK)task; /*任务返回地址*/
*++stk=(OS_ STK)task; /*中断返回地址*/
*++stk=(OS_ STK)0x2000; /*状态寄存器,开中断*/ 其余CPU寄存器全部入栈,并初始化为0
}

3.4 OS_ CPU_ A.ASM
在OS_ CPU_ A�ASM文件中要求用户编写四个简单的汇编语言函数:OSStartHighRdy()、OSCtxSw()、OSIntCtxSw()、OSTickISR()。这四个函数具有完全相同的公共部分:寄存器入栈和寄存器出栈。只要按照上面设计好的栈结构进行就可以了。注意的是VC33的R0到R7是扩展精度寄存器,具有40位。在入栈和出栈时均需要用两句话完成,如下:
入栈: 出栈:
PUSH R0 POPF R0
PUSHF R0 POP R1

而OSIntCtxSw函数具有特殊部分,该函数用于从中断返回时进行任务切换,由于在调用_ OSIntCtxSw函数前已经发生了中断,中断服务程序已经将CPU寄存器保存到堆栈中了,所以此处不再进行寄存器保存。同时还要进行栈指针的调整,去掉堆栈中一些不需要的内容,然后再将寄存器全部出栈。由于该函数是μC/OS-II中唯一的与编译器相关的函数,所以在移植后必须利用多次任务切换检查栈指针是否正确调整。

3.5 时钟中断源初始化
μC/OS-II还要求用户提供一个时钟资源,用于实现时间延时和确认超时。根据APCI5096的硬件设置,需要在三个文件中进行时钟资源的设置。

(1)OS_ CPU_ A�ASM:
APCI5096中,已将VC33的定时器1用于测频通道,因此利用未被占用的定时器0产生定时中断。实现方法为在TINT0的中断向量入口处放一跳转指令,跳转到自己写的OSTickISR。
�sect “�TINT0_ vector"
TINT0 br _ OSTickISR

(2)CMD文件
将TINT0跳转到OSTickISR后,还应再指定TINT0的向量入口地址。APCI5096板上的VC33被设置为BootLoader方式,在该方式下TINT0的入口地址固定在0x809FC9。在CMD文件的SECTIONS段指定如下:
�TINT0_ vector:> 0x809FC9

(3)Main�C文件
μC/OS-II要求用户在OSStart()运行后,μC/OS-Ⅱ启动运行的第一个任务中初始化节拍中断。自己编写一个函数TimerInit(),并在第一个任务开始处调用该函数完成定时器0的初始化。函数中TIM0_ XXX代表的是定时器0的三个寄存器的地址,在完成对定时器0的设置后还要打开全局中断和时钟中断。

{
*TIM0_PRD= 0x7530; /*设置周期为1KHZ*/
*TIM0_CNT=0;
*TIM0_CTL=0x2C1; /*启动时钟*/
ST|=0x2000; /*打开中断*/
IE|=0x100; /*打开时钟中断*/
}

4 测试、编写驱动和应用程序
做完以上工作以后,就要测试移植是否成功。最初测试时,可以先运行操作系统本身,调度一些简单的任务和时钟节拍中断任务。主要测试系统本身的正确性,如果调试成功就可以在上面继续开发驱动程序和添加应用程序。

Ⅹ dsp三种复位方式

DSP系统的硬件复位有三种方式是:上电复位,手动复位,软件复位。

硬件复位是复位启动以后需要重新加载加载FPGA、DSP等,也有可能在这个操作之前初始化化CPU,加载系统文件等操作,具体视需要而定,然后初始化一些配置芯片;软复位则不需要进行FPGA、DSP等的加载,只是一些配置芯片的初始化。

用最少的字来解释:复位的概念:让赛跑运动员各自回到自己的起跑线。硬复位:用拖车把运动员给拖到起跑线。软复位:运动员自己走到起跑线。硬件复位是靠复位电路,而这种类型的复位从理论上讲只是起到了软件程序重启的作用,之前所有保存的数据是依然存在的,当软件重启后有可能会清掉或者不清这些数据。

1Blackfin系列DSP的特点P5-6

微信号结构、动态电源管理、高度并行的计算单元、高性能的数据地址产生器、极佳的代码密度、视频指令、分层结构的内存、集成的更多的外围设备、部分芯片配有专门的视频接口、调试/JTAG接口、性能发展进程。

2DSP芯片特点P3-4

普遍采用哈佛结构及改进的哈佛结构、流水线技术、针对滤波相关矩阵运算配有独立的乘法器和加法器、有多条总线、具有硬件接口逻辑和软件等待功能、带有多个DMA通道控制器、配有中断处理器定时控制器及实时时钟、低功耗、多机并行运行特性、丰富的外设接口。

改进哈弗结构的特点P3

将程序和数据存储在不同的存储空间中,程序存储器和数据存储器是两个相互独立的存储器,每个存储器独立编制独立访问。对应的是系统中设置了程序总线和数据总线,使数据的吞吐率提高了一倍。

动态电源管理允许电压和频率独立调整,使每一个单项任务所消耗的能量最少,使ADI的DSP性能提高4倍以上,功耗降低1/3.。使用外部电源管理控制器能够操纵DSP内核的内部电压,从而更进一步减少功耗。

2.2内核数据算术单元的基本处理过程(对数据寄存器的使用过程):数据首先经过总线从内存读入数据寄存器,然后作为计算单元(ALU、MAC)的输入,计算结果存入数据寄存器,作后写入内存。ALU支持的特殊除法原语。

阅读全文

与dsp程序的加密保护体制设计相关的资料

热点内容
程序员放弃后会怎样 浏览:160
河北模具编程 浏览:179
adb查找命令 浏览:309
安卓手机视频文件夹怎么打开 浏览:303
平板加密手机后怎么关闭 浏览:557
流媒体服务器应该注意什么 浏览:528
d8命令编译 浏览:943
压缩包解压需要多少空间 浏览:139
如何查找app属性 浏览:381
android人脸识别技术 浏览:305
pc104编程 浏览:329
二维码反编译破解推广 浏览:674
修改服务器的mac地址 浏览:521
好玩的编程软件 浏览:892
编程语言创始人有钱吗 浏览:797
短视频app怎么获客 浏览:8
查看云服务器的应用 浏览:427
javadump工具 浏览:558
程序员16g 浏览:421
程序员没有办法成为top怎么办 浏览:196