【仁仁源码】【activemq源码包】【附加秒杀源码】ti源码

来源:水貂的溯源码

1.TI DSP系列中文手册:TMS320C55x系列DSP指令系统、源码开发工具与编程指南目录
2.TIOVX 源码学习: openvx理解
3.TLV320AIC23的应用
4.2.1软件架构分析-新建工程
5.长文分享丨TI AM5718的源码PRU开发详解

ti源码

TI DSP系列中文手册:TMS320C55x系列DSP指令系统、开发工具与编程指南目录

       TI DSP系列的源码TMSCx系列DSP指令系统、开发工具与编程指南提供了一个详细的源码入门指南。以下是源码文章的主要部分概述:

       第1章,Cx编程基础,源码仁仁源码首先介绍了TMSCx的源码结构和优化代码开发流程。本章包括:

       1.1.1 TMSCx的源码硬件架构

       1.1.2 优化代码开发的关键步骤

       1.2 基础教程,从编写汇编代码开始,源码涵盖链接过程、源码程序建立、源码测试和代码计时等

       1.3 定点算术运算,源码涉及不同运算的源码指南和处理溢出的方法

       1.4 TICx DSPLIB,讲解了库的源码功能、数据类型和调用方法,源码以及示例程序的获取途径

       第2章详细阐述了Cx汇编语言指令系统,包括术语、寻址方式和开发工具的介绍,如不可重复指令、并行特性和资源管理等。activemq源码包

       第3章专注于开发工具,如COFF格式、汇编器和链接器的工作原理,以及如何使用Cx汇编器进行源代码处理。

       第4章和第5章则介绍了Cx/C++语言的使用以及代码优化技术,帮助开发者在性能和编程效率之间找到平衡。

TIOVX 源码学习: openvx理解

       学习TIOVX源码的关键在于理解其原理和实际应用。首先,需要参考专业资源了解OpenVX和TIOVX的基本概念。OpenVX是一种基于硬件抽象层的图像处理框架,其目的在于在不同硬件平台上提供统一的API接口,而TIOVX则是对OpenVX标准的实现,特别强调在DSP上的自定义开发。

       在TIOVX中,用户可以利用User Kernel扩展OpenVX的功能,但仅限于CPU环境。为了弥补这一限制,TIOVX引入了Target Kernel概念,允许用户在DSP上进行自定义开发,附加秒杀源码从而提升特定任务的性能。

       理解TIOVX源码时,可以从官网教程出发,通过官方提供的示例来掌握Target Kernel和User Kernel的编写、调度及生命周期管理。这包括在AddUserKernel中指定运行前、运行时和运行结束后执行的函数。

       在实际应用中,TIOVX与OpenCV类似,都专注于图像处理,涉及上下文(Context)、图(Graph)和节点(Node)等概念。了解AppObj结构体,有助于更深入地理解TIOVX的内部运作。AppObj包含运行各阶段所需的变量,如TIDLObj用于管理网络参数、ImgMosaicObj用于图像参数、DisplayObj用于显示参数、ScalerObj用于图像列表相关变量。c wpf 源码

       为了更高效地学习和应用TIOVX,建议从TI官方提供的例子出发,详细阅读文档,理解结构体嵌套关系,以便在具体项目中调用API时更加得心应手。通过这些步骤,可以逐步掌握TIOVX源码的核心内容及其在实际项目中的应用。

TLVAIC的应用

       TLVAIC的应用:

       åŸºäºŽDDK的TLVAIC型编解码器的驱动设计

       DSP/BIOS Driver Developer’s Kit(DDK)是TI为简化驱动程序开发为TMS系列DSP及其EVM板等提供的驱动程序开发套件。该套件为TMS系列各种外围器件提供完整的标准化驱动程序模型,使得驱动程序可以很方便地移植到其他应用中,大大提高驱动程序开发的效率。DDK是对每种TMS系列DSP都提供的芯片支持库(Chip Support Library—CSL)的补充,CSL提供对外围器件寄存器配置及初始化等的低级控制,DDK完全通过CSL来对外围器件进行控制。简单地说。DDK建立在CSL上层.所以用DDK来开发驱动程序将更为快捷且可移植性更好。

       DDK为开发驱动程序定义了标准模型和一系列的API。为简化程序设计。标准模型又被分为二个层次.其中高层称为Class driver,低层称为Mini—driver。Class drivei与器件相对独立.完成诸如缓冲区管理和请求同步等功能.同时扮演着与API和Mini—driver二者接口的角色。Mini—driver完成特定的器件初始化和控制功能.它符合IOM(I/O Mini—driver)的接口标准。DDK的这种分层结构使得驱动开发人员仅需了解单一的Mini—driver API就可以完成整体外围器件的驱动设计,而且这一过程比设计整个驱动程序要简单得多,因为Class driver控制了缓冲区管理和同步等。DDK提供3种Class driver.分别为SIO/DIO、PIP/PIO和GIO,它们都可以和任何Mini—driver结合使用。

       2 TLVAIC的驱动设计基础

       DDK的标准模型结构如图1所示。高层的应用和底层驱动相互没有直接的关联,开发中只需通过Class driver控制Mini—driver。

       ä¸‹é¢ä»¥DM EVM板为例.说明基于DDK的TLVAIC的驱动程序设计方法。

       é¦–先,需要使用配置工具建立驱动程序的入口。在DSP/BIOS con_fig下的cdb文件中.依次选择In-puffOutplut---Deviee Drivers→User→defined Drivers.在这些例程中一般已经添加了udevCodec.如果需要的话,用户可以自行添加或编辑。右键单击选择Properties选项来编辑其属性,其属性应设置如下:

       Comment:可以加入自己的注释

       lnit function:键入EVMDM_EDMA_AIC一init

       Function table ptr:键入 EVMDM_EDMA_A-IC一Fxn8

       Function table type:选择IOM_Fxns

       Deviceid:该项会被自动忽略.因为DM EVM板上只有一块TLVAIC

       Device params ptr:TLVAIC参数结构的入口指针.使用缺省参数时设为0x0

       Device global data ptr:必须设置为OxO

       æ­£ç¡®é…ç½®é©±åŠ¨ç¨‹åºå…¥å£åŽï¼Žå°±è¦æŒ‰ç…§éœ€è¦è®¾ç½®ç›¸å…³çš„参数。下面具体讨论TLVAIC参数的设置。

       TLVAIC的参数结构体原型如下:

       typedef struct

       åœ¨ä¸€èˆ¬åº”用中。上述结构体的大多数参数无需更改,需要修改的主要是aieConfig.它是TLVAIC控制寄存器值.需要通过它来控制TLVAIC的工作模式、输入/输出选择、采样率等重要参数。

       é™¤äº†å¤ä½å¯„存器外.TLVAIC共有9个控制寄存器.每个寄存器控制字长为9bit.地址位为7bit,共有bit。地址位为高7位而控制字在低9位。具体如下:

       Register0:左声道输入音量控制,缺省值为 0x

       Register1:右声道输入音量控制,缺省值为 0x

       Register 2:左声道输出音量控制。缺省值为OxF9

       Register 3:右声道输出音量控制,缺省值为OxF9

       Register 4:模拟音频通道设置.缺省值为Ox

       Register 5:数字音频通道设置。缺省值为0x

       Register 6:节电模式控制.缺省值为0x

       Register 7:数字音频接口格式控制,缺省值为0x

       Register 8:采样率控制,缺省为kHz,对DMEVM板.缺省值为Ox

       Register 9:数字音频接口激活开关.缺省值为0x

       é€šå¸¸æƒ…况下需要修改的寄存器包括4号和8号寄存器.即选择是由mic输入还是由line in输入和根据需要选择采样率。这2个寄存器的详细配置如下:

       4号寄存器配置见表1,其中,D2位。INSEL(In-put select for ADC)是输入选择,“O”为line in;“l”为mic.D1位MICM(Microphone mute)是mic静音开关.为“l”表示静音。DO位MICB(Microphone boost)如设置为“1”将为mic输入提供dB的增益。8号寄存器配置见表2,其中,采样率控制位为D5~D2的SR[3:O]。对于DM EVM板,设置方式见表3。

       å¯è§ï¼Žéœ€è¦é€šè¿‡4号寄存器的D2来选择输入,同时考虑Dl和DO对mic的控制;采样率的控制通过设置8号寄存器的SR[3:0]来实现。

       3 TLVAIC的驱动配置方法

       å¾ˆå¤šåˆå­¦è€…在运行DM EVM的echo或其他音频例程时,最容易碰到的问题是通过line in输入时有输出.而通过mic输入时没有输出,更不要说改变采样率了。即使参考资料编辑aic-h和emvdm_edma_aic.h修改Dcfauh参数仍然无法解决。

       å‡ºçŽ°è¿™æ ·çš„问题时。首先要了解TLVAIC的模拟音频输入为mic和line in二选一的,其次要知道如何能够正确配置TLVAIC的参数使之满足特定应用的需要。如果仔细分析echo例程和其他音频例程的话,可以发现只有在echo例程中包含了aie.h和emvdm_edma_aie.h 2个头文件。其实在echo例程中.所包含的这2个头文件和TLVAIC的初始化语句实际并未使用。如果屏蔽掉对这2个头文件的包含以及TLVAIC的初始化语句,会发现编译后仍然能够正常运行。实际上echo例程中的TLVAIC初始化语句只是提供了对Ⅱ,VAIC进行配置的一种方法而并未直接使用。该方法在DDK包的emvdm部分说明文件中也已提及。

       ç”±äºŽåœ¨echo例程中初始化驱动程序人口和其他的音频例程一样使用了默认参数,而默认参数是通过调用DDK包中的evmdm_edma_aic.库获得的.该库不变则配置也不变,于是就会出现上述问题。

       åœ¨æ˜Žç¡®äº†ä»¥ä¸ŠåŽŸç†åŽï¼Žé€šè¿‡å®žè·µè¯æ˜Žï¼Œæœ¬æ–‡æä¾›çš„以下三种配置方法可以适应各种应用。

       æ–¹æ³•ä¸€

       æ—¢ç„¶é»˜è®¤å‚数是通过调用evmdm_edlna_a-ic.库获得的.那么自然可以通过修改该库来达到修改参数的目的。TI提供的DDK包中包含了各种库的源代码.这使得修改库文件成为可能。本文用到的库生成工程是tiddksrc\audio\evmdm目录下的evmdm_edma_mc_.pjt,只需要打开该工程.修改其中aic.h中的默认参数,重新编译就能生成新的库文件。这样,所有的音频例程都会默认按修改过的参数运行。

       è¿™ç§æ–¹æ³•é€‚合TLVAIC参数配置相对固定的应用场合。配置完全通过调用evmdm_ed_ma_aic.库初始化时进行.不用在应用工程文件中添加任何附加代码.使得工程文件更简洁.可移植性更高。

       æ–¹æ³•äºŒ

       è‡ªå®šä¹‰ç¬¦åˆæ ‡å‡†ç»“æž„EVMDM_EDMA_A.IC一DevParams的结构体,例如:

       ç„¶åŽå°†â€œ_myParms”作为Device params ptr在指定人口指针时替代默认的0x0。这就符合TI推荐的方法,在echo例程中的相关代码也说明了这种方法。

       è¿™ç§æ–¹æ³•èƒ½å¤Ÿé€‚应几乎任何使用情况,初始化参数自定义非常明确,代码易读性较高。但是不建议像echo例程中那样直接包含默认参数的头文件.最好参照该头文件定义自己的结构体。

       æ–¹æ³•ä¸‰

       é€šè¿‡ä»”细分析生成evmdm_edma_aic.库的源代码,可以发现对TLVAIC寄存器的设置是通过AIC_setParams()函数来完成的。在大多数情况下,只要修改寄存器值而不必修改标准结构EVMDM_EDMA_AIC_DevParams结构体中的其他变量。所以可以调用AIC_setParams()函数来完成对TLVAIC参数的配置。这样就只需要定义1个符合标准的寄存器数组.将数组名作为参数来调用AIC_setParamsf()函数就可以达到目的。

       è¿™ç§æ–¹æ³•ä½¿ç”¨çµæ´»ï¼Œä»£ç é•¿åº¦å¾ˆçŸ­ï¼Œå«ä¹‰éžå¸¸æ˜Žç¡®ï¼Œå¯ä»¥ç”¨ä¸åŒå‚数多次调用.尤其适用于TLVAIC参数可变的特殊场合。

       åœ¨å®žé™…工作基础上对TLVAIC参数配置提出了3种方法,各有特点且都十分实用。在进行基于DDK的TLVAIC驱动程序设计时.可以根据需要方便地选用。

2.1软件架构分析-新建工程

       为了深入理解BUCK电路的软件架构,本章节将专注于软件部分,同时穿插一些可能影响软件设计的硬件知识点。本小节将介绍所需的软件平台、新建工程,并对工程文件进行分析。

       首先,你需要下载并安装两个软件,分别是TI官方提供的CCS软件和controlSUITE软件。我已经将CCS6.1版本上传至网盘,链接如下:pan.baidu.com/s/1v-T9Fr... 提取码:tc9b。请注意,孕期 工具源码遇到安装问题时,可以参考百度。TI官网也提供较新版本的CCS软件,供你下载。

       接着,获取TI开源BUCK demo板中的FM软件。你可以通过TI官网下载最新安装包,或者从网盘下载controlSUITE软件安装包。控制SUITE软件安装包链接如下:pan.baidu.com/s/1mWNNj7... 提取码:1nhi。之后,在安装目录找到BOOSTXL_BUCKCONV目录,最新的版本路径为:ti\controlSUITE\development_kits\BOOSTXL_BUCKCONV\v1___\Buck_VMC_FM。建议不要在该目录下直接打开工程,而是复制到个人工作文件夹进行编辑和修改。

       接下来,在安装完软件平台后,使用CCS软件新建工程,探索神秘的源代码。首先,双击CCS软件图标,创建一个workspace目录,用于存放软件工程。然后,导入TI提供的代码工程,选择Project->Import CCS Projects,确保勾选“Copy projects into workspace”,完成导入,查看弹出的工程。

       在工程文件中,首先双击CCS软件图标,创建一个workspace目录,以存放软件工程。在导入TI提供的代码工程时,通过点击Project->Import CCS Projects,注意确保“Copy projects into workspace”选项被选中,点击Finish即可查看工程。此时,可以显示工程文件,后续章节将详细介绍文件内容。

       完成工程文件导入后,点击Project->Build All,开始编译,确保生成OUT文件。对于CCS软件中的文件夹和文件,本小节将进行简要说明。在下一节,我们将深入分析整体软件框图和相关实验验证过程。

长文分享丨TI AM的PRU开发详解

       揭示TI AM PRU开发的深度解析

       在TI AM这款强大的SoC中,PRU-ICSS单元发挥着关键作用,通过实时定制实现产品差异化。PRUSS是一个独特的位RISC处理器,配备专属内存,直接连接到L3_MAIN总线,ARM和DSP等其他模块也可通过它进行高效通信。每一块PRU拥有位互连,KB指令RAM,8KB数据RAM和B共享内存,数据RAM通过映射地址供其他模块访问。

       PRU-ICSS的基石组件

       PRU-ICSS包括两个部分,icss1和icss2,它们分别具备电源域实例化、主控和配置端口,中断控制器,以及本地时钟管理等实用功能。其中,内存映射如下:

       1.1 独立指令空间(0x-0xFFF)

       1.2 8KB数据RAM(0x-0xFF,其他模块可访问)

       1.3 全局地址空间:PRU_ICSS1位于0x4B2A,PRU_ICSS2位于0x4BE

       外部模块通过L3_MAIN总线的全局地址访问PRU资源,实现无缝交互。

       关键寄存器详解

       PRU寄存器世界中,控制和状态至关重要。例如:

PRU_CONTROL:掌控PRU的运行模式和状态。

PRU_STATUS:程序指针寄存器,实时反映PRU运行进度。

WAKEUP_EN:通过设置R位和相应的唤醒信号,唤醒沉睡的PRU。

CYCLECNT:以PRU时钟周期计数,COUNTENABLE和CONTROL指令起决定作用。

STALLCNT:记录PRU执行指令时的暂停计数。

PRUSS_DBG_GPREG:调试通用寄存器,对应R0-R,用于深入了解PRU工作。

R事件/状态寄存器:读写操作各异,用于触发中断输出,执行特定功能。

R通用输出寄存器:连接到PRU的外部接口,输出数据。

PRU中断控制器:支持个系统事件和个中断通道,高效管理中断流程。

中断映射:通过PRUSS_INTC_CMR和PRUSS_INTC_HMR进行通道和事件的配置。

       深入探索,飞凌嵌入式OK开发板提供了丰富的实例源码,如7.4和7.5节的官方文档和飞凌示例程序,助您快速上手。

       软件调试实战

       想要驾驭PRU,你需要强大的调试工具。使用XDSV2 USBJTAG仿真器,通过飞凌调试适配板连接JTAG接口,为你的PRU代码保驾护航。在CCS仿真器中,你可以进行如下操作:

       全速运行或暂停程序

       单步执行,选择进入或跳过函数

       汇编级别单步跟踪

       监控变量和寄存器值,通过Watch Expression进行实时查看

       当进入调试模式,你可以观察到GPIO值变化,以及R寄存器的实时更新。这样,每一次调试步骤都将揭示PRU运行的奥秘。

       深入了解更多详情,请参考[1],探索PRU在AM中的无限可能。

       AMx Technical Reference Manual

文章所属分类:百科频道,点击进入>>