欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    TMS320C6678平台函数接口要求.docx

    • 资源ID:5877364       资源大小:90.91KB        全文页数:45页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    TMS320C6678平台函数接口要求.docx

    1、TMS320C6678平台函数接口要求XXXXXX平台软件函数接口要求版本:1.2拟制_审核_批准_2015.11版本信息版本修改内容时间1.0最初版本,xxxx2015-9-291.1版本1.1,xxx2015-10-101.2版本1.2,xxx,增加DMA设置函数,修改部分笔误2015-11-11.关于本文档本文是XXXXXX平台软件函数接口需求规格书的说明文档。它对XXXXXX平台软件部分资源函数接口的功能、体系结构、接口定义等方面进行了详细叙述,约束操作系统研发人员、BSP包开发编程人员和用户程序开发人员,主要用于技术交流和二次开发。2.概述为了保证XXXXXX平台软件测试工作的规范性

    2、,统一国产操作系统的测试接口要求,方便应用代码移植、调试与性能对比,对TMS320C6678芯片(后简称C6678芯片)相关硬件资源和多核应用机制的函数接口统一要求,并在此基础之上,搭建应用测试软件,检验操作系统的性能、效率与可靠性,保证测试的公平与公证性。XXXXXX平台软件函数接口,主要包括SPI接口、I2C接口、串口、EMIF接口、GPIO接口、HyperLink接口、DMA、RapidIO接口(后简称RIO)、中断与定时器、内存与cache管理等硬件资源,核间消息和核间互斥等等应用资源。硬件资源的操作主要分两个层次,即基本接口、扩展接口。基本接口层次的软件函数接口负责硬件的基本操作,可

    3、用于应用或驱动的二次封装;扩展接口则相对复杂,是在基本接口的基础上,内核参与管理,保证多核、多进程互斥的函数接口。所以,多核多进程共享的硬件资源,譬如DMA资源,核间消息,Hyperlink接口,RIO资源需要考虑并建立在核间互斥机制的基础上保证上述两个层次的设计。另外,C6678芯片的中断相对复杂,操作系统需要使用中断,用户也需要使用。所以,一方面,操作系统管理所有中断,对用户开发部分外部中断,提供方便简洁的中断外部挂载模式;另外一方面,操作系统对部分内部资源完全管理,如用户需要该资源的事件触发中断,操作系统提供函数接口,将用户中断代码通过回调函数的形式挂载到对应资源中断上。定时器资源相对简

    4、单,除去操作系统占用的定时器外,剩余的需要操作系统管理,且提供函数接口方便用户使用。3.函数接口定义XXXXXX平台测试软件模块函数接口要求,主要从两个方面的原则提出。一方面,在兼容POSIX接口的要求条件下,管理内存、cache、中断、定时器资源和DMA资源,提供简洁函数接口,方便用户管理使用资源,相关于中断服务的提供回调函数,方便用户挂载代码;另一方面,对POSIX接口中未涉及的资源,包括多核间消息,RIO操作提供简洁函数接口,为C6678芯片的多核应用与核间通讯,保证用户便捷开发与多核管理与维护。下面就各个部分详细描述。3.1.中断资源表3-1给出中断/异常管理编程接口列表。表3-1 中

    5、断/异常管理编程接口表序号接口标识接口名称接口描述1int_install_handler()安装中断处理函数具体参看GJB7714-2012 P88 A.32int_unstall_handler()卸载中断处理函数3int_lock()锁中断4int_unlock()解锁中断5int_enable_pic()使能指定中断号的中断6int_disable_pic()屏蔽指定中断号的中断7exception_handler_set()设置用户异常处理函数8shared_int_install()安装共享中断的处理函数9shared_int_unstall()卸载共享中断的处理函数表3-1中所有

    6、函数均围绕硬件资源的中断管理与操作展开,其涉及资源包括GPIO中断资源,INTC中断控制器,各个核的中断资源,和PA(与网络资源)、QMSS(核间消息相关)、DMA、RIO、HyperLink、UART(即串口)等外设与中断事件相关资源。除使用标准BSP函数访问所述资源的硬件外,需要提供按照POSIX接口要求中断访问函数(见GJB7714-2012 7章中断/异常管理编程接口)。考虑到与POSIX接口标准的兼容性,简化用户对中断操作,使用传统的中断向量实现中断的挂载(如图3-1)。图3-1 基于中断向量的中断接口模型中断挂载分两种模式,即直接中断和共享中断两种。直接中断模式下,用户使用int_

    7、install_handler函数和int_unstall_handler函数将中断挂卸载到操作系统内核上;共享中断模式下,用户使用shared_int_install函数和shared_int_unstall函数将中断挂卸载到操作系统内核上。两种模式下,共同的函数输入形参是中断向量值vecnum ,中断向量是用户与操作系统内核共同约定的,由操作系统内核中断管理模块统一管理,并解释成C6678芯片的中断控制器(INTC)与各个C66x内核的中断映射拓扑,构建中断响应的硬件通道。直接中断是事件直接映射并挂载到C66x内核的中断输入;共享中断是由多个中断事件组合成,并约定挂载到C66x内核的某个中

    8、断输入(由操作系统设计时决定)上,响应中断时由操作系统内核软件查询各个事件对应状态,以确定发生中断的事件,并执行挂载的中断服务代码。目前,暂定的直接中断通道有4个,暂定的共享中断有1个。表3-2给出外部中断向量定义列表。表3-2 外部中断向量定义表序号向量值向量标识说明10x00GPIO0_VECGPIO0中断20x01GPIO1_VECGPIO1中断160x0FGPIO15_VECGPIO15中断170x10HTIMER0_VEC硬件定时器0中断180x11HTIMER1_VEC硬件定时器1中断320x1FHTIMER 15_VEC硬件定时器15中断未定义,待定3.2.定时器资源事件管理的定

    9、时器资源,主要包括看门狗、系统软件定时器、硬件定时器资源的利用。除使用标准BSP函数访问所述资源的硬件外,需要提供按照POSIX接口要求访问函数(见GJB7714-2012 8章时钟/定时器管理编程接口)。操作系统内核为用户方便使用内核未使用的定时器硬件资源,定义如表3-3所示的硬件定时器管理编程接口,用于管理与使用硬件定时器资源。表3-3给出硬件定时器管理编程接口列表。表3-3 硬件定时器管理编程接口序号接口标识接口名称接口描述类型1hwtimer_open()打开定时器仅提供硬件定时器访问与设置函数,中断参照3-1说明基本2hwtimer_close()关闭定时器3hwtimer_set(

    10、)设置定时器参数4hwtimer_settime()设置定时器时间5hwtimer_gettime()获取定时器时间6hwtimer_start()启动定时器7hwtimer_stop()停止定时器硬件定时器中断挂载参照3.1节外部中断管理的要求操作。3.3.DMA资源DMA资源是用户充分使用DSP芯片的关键,通过合理的DMA使用,实现数据搬移与程序运算代码分离,极大地发挥CPU的性能,提高CPU应用的效率。C6678的DMA资源(EDMA资源)具备强大能力,在无需CPU干预的情况下,可以轻易地实现数据搬移、矩阵专置等等功能。操作系统内核为保证用户便捷使用DMA硬件资源,定义如表3-4所示的D

    11、MA编程接口,用于管理与使用DMA资源。表3-4给出DMA编程接口列表。表3-4 DMA编程接口序号接口标识接口名称接口描述类型1dma_create()创建DMA具体参看3.3.1基本2dma_set()设置DMA参数具体参看3.3.23dma_start()启动DMA具体参看3.3.34dma_stop()停止DMA具体参看3.3.45dma_delete()删除DMA具体参看3.3.56dma_getinfo()获取DMA的概要信息具体参看3.3.6扩展7dma_show()显示DMA信息具体参看3.3.78dma_check()检验DMA传输结束具体参看3.3.83.3.1.创建DMA

    12、函数dma_t dma_create (void* param, void* func)【功能】:创建DMA对象(暂定)【参数】: void* param:创建参数设置结构体指针void* func:回调函数参数指针【返回值】:dma句柄类型, 不为零,创建成功;0,创建失败(暂定)3.3.2.设置DMA参数函数int dma_set (dma_t handle, void* param)【功能】:重新设置DMA对象参数,在需要的场合使用。【参数】: dma_t handle:DMA句柄void* param:创建参数设置结构体指针【返回值】:int类型, 0,工作正常;其他,出错3.3.3.

    13、启动DMA函数int dma_start (dma_t handle, void* psrc, void* pdst, int size_t, int len, int timout)【功能】:启动DMA工作【参数】: dma_t handle:DMA句柄void* psrc:DMA源地址指针void* pdst:DMA目的地址指针int size_t,:DMA传送单位数据字节数int len:DMA传送单位数据长度int timout:超时时间【返回值】:int类型, 0,工作正常;其他,出错(暂定)3.3.4.停止DMA函数int dma_stop (dma_t handle)【功能】:停

    14、止DMA工作【参数】: dma_t handle:DMA句柄【返回值】:int类型, 0,成功;其他,出错(暂定)3.3.5.删除DMA函数int dma_delete (dma_t* phandle)【功能】:删除DMA对象【参数】: dma_t* phandle:DMA句柄指针【返回值】:int类型, 0,成功;其他,出错(暂定)3.3.6.获取DMA概要信息函数int dma_ getinfo (dma_t handle)【功能】:删除DMA对象【参数】: dma_t handle:DMA句柄【返回值】:int类型, dma工作状态代码(暂定)3.3.7.显示DMA信息函数Int dma

    15、_show(dma_t handle, dma_info* pinfo)【功能】:删除DMA对象【参数】: dma_t handle:DMA句柄dma_info* pinfo:DMA信息结构体指针【返回值】:int类型, 0,成功;其他,出错(暂定)3.3.8.检验DMA传输结束信息函数int dma_check(dma_t handle)【功能】:检验DMA传送工作是否完成【参数】: dma_t handle:DMA句柄【返回值】:int类型, 0,成功;其他,出错(暂定)3.4.串口操作串口是比较简洁的接口,一般用于诊断和维护接口,但也可开放给用户使用。所以,操作系统内核为保证用户便捷使用

    16、串口硬件资源,定义如表3-5所示的串口编程接口,用于管理与使用串口资源。表3-5给出串口编程接口列表。表3-5 串口编程接口序号接口标识接口名称接口描述类型1uart_init()初始化串口模块具体参看3.4.1基本2uart_open()打开串口具体参看3.4.23uart_close()关闭串口具体参看3.4.34uart_send()串口发送操作具体参看3.4.45uart_recv()串口接收操作具体参看3.4.56uart_set()串口设置具体参看3.4.63.4.1.3.4.1.初始化串口模块函数int uart_init (int baudrate)【功能】:初始化串口硬件资源

    17、模块,本函数不要求支持多核多进程操作,必须0核操作【参数】: int baudrate:波特率设置【返回值】:int类型,0,初始化成功;不为零,失败3.4.2.打开串口函数uart_t uart_open (void* param, void* func)【功能】:打开串口对象【参数】: void* param:创建参数设置结构体指针void* func:中断回调函数参数指针【返回值】:串口句柄类型, 不为零,打开成功;0,打开失败3.4.3.关闭串口函数int uart_close (uart_t* phandle)【功能】:关闭串口对象【参数】: uart_t* phandle:串口句柄

    18、指针【返回值】:int类型, 0,成功;其他,出错3.4.4.串口发送函数int uart_ send (uart_t handle, char data)【功能】:串口发送数据【参数】: uart_t handle:串口句柄char data:待发送的数据【返回值】:int类型,0,成功;其他,出错3.4.5.串口接收函数int uart_ read (uart_t handle, char* pdata)【功能】:串口接收数据【参数】: uart_t handle:串口句柄char* pdata:接收数据存放指针【返回值】:int类型, 0,成功;其他,出错3.4.6.串口设置函数int

    19、uart_set (uart_t handle, int baudrate)【功能】:设置串口资源【参数】: uart_t handle:串口句柄int baudrate:波特率设置【返回值】:int类型,0,成功;不为零,失败3.5.I2C接口操作i2c接口一般连接i2c接口的串行EPROM设备,用于存储启动代码和启动参数以及板卡的配置信息。考虑到用户外设多样性,操作系统内核提供如表3-5所示的访问i2c接口硬件资源的编程接口,用于管理与使用i2c接口硬件资源。表3-6给出i2c接口编程接口列表。表3-6 串口编程接口序号接口标识接口名称接口描述类型1i2c_init()初始化I2c接口具体

    20、参看3.5.1基本2i2c_open()打开I2c接口具体参看3.5.23i2c_close()关闭I2c接口具体参看3.5.34i2c_write()I2c接口写操作具体参看3.5.45i2c_idle()I2c接口空闲操作具体参看3.5.53.5.1.3.4.7.3.4.8.3.4.9.3.4.10.3.4.11.3.4.12.3.4.13.3.4.14.3.4.15.3.4.16.3.4.17.3.3.4.3.4.1.3.4.2.3.4.3.3.4.4.3.4.5.3.4.6.3.4.7.3.4.8.3.4.9.3.5.3.5.1.3.5.2.3.5.3.3.5.4.3.5.5.3.5.

    21、6.3.5.7.3.5.8.3.5.9.3.5.10.3.5.11.3.5.12.3.5.13.3.5.14.3.5.15.3.5.16.3.5.17.3.5.1.初始化I2c接口函数int i2c_init (void)【功能】:初始化I2c接口硬件资源模块,本函数不要求支持多核多进程操作,必须0核操作【参数】: 无【返回值】:int类型,0,成功;不为零,失败3.5.2.打开I2c接口函数i2c_t i2c_open (void* param, void* func)【功能】:打开i2c接口对象【参数】: void* param:创建参数设置结构体指针void* func:中断回调函数参数

    22、指针【返回值】:i2c句柄类型, 不为零,创建成功;0,创建失败3.5.3.关闭I2c接口函数int i2c_close (i2c_t* phandle)【功能】:关闭i2c接口对象【参数】: i2c_t* phandle:i2c接口句柄指针【返回值】:int类型, 0,成功;其他,出错3.5.4.I2c接口操作函数int i2c_oprate (i2c_t handle, char* pcmd, int cmdsize, char* pdata, int size)【功能】:i2c接口数据操作【参数】: i2c_t handle:i2c接口句柄char* pcmd:命令数据存放地址int c

    23、mdsize:命令数据长度char* pdata:数据存放地址int size:数据长度(按字节)【返回值】:int类型,0,成功;其他,出错3.5.5.I2c接口空闲操作函数int i2c_idle (i2c_t handle)【功能】:i2c接口空闲操作【参数】: i2c_t handle:I2c接口句柄【返回值】:int类型, 0,成功;其他,出错3.6.SPI操作SPI接口是C6678芯片的基本接口之一,为DSP芯片外围设备提供扩展接口。所以,为保证用户便捷使用SPI接口的硬件资源,操作系统需要提供定义如表3-7所示的SPI接口编程接口,用于访问SPI接口硬件资源。表3-7给出SPI接

    24、口编程接口列表。表3-7 SPI接口编程接口序号接口标识接口名称接口描述类型1spi_init()初始化SPI接口具体参看3.6.1基本2spi_open()打开SPI接口具体参看3.6.23spi_close()关闭SPI接口具体参看3.6.34spi_claim()SPI接口设置具体参看3.6.45spi_read()SPI接口读操作具体参看3.6.56spi_write()SPI接口写操作具体参看3.6.63.6.1.3.5.18.3.5.19.3.5.20.3.5.21.3.5.22.3.5.23.3.5.24.3.5.25.3.5.26.3.5.27.3.5.28.4.4.4.4.4

    25、.1.4.4.2.4.4.3.4.4.4.4.4.5.4.4.6.4.4.7.4.4.8.4.4.9.3.6.3.6.1.3.6.2.3.6.3.3.6.4.3.6.5.3.6.6.3.6.7.3.6.8.3.6.9.3.6.10.3.6.11.3.6.12.3.6.13.3.6.14.3.6.15.3.6.16.3.6.17.3.6.3.6.1.3.6.2.3.6.3.3.6.4.3.6.5.3.6.1.初始化SPI接口函数int spi_init (void)【功能】:初始化SPI接口硬件资源模块,本函数不要求支持多核多进程操作,必须0核操作【参数】: 无【返回值】:int类型,0,成功;

    26、不为零,失败3.6.2.打开SPI接口函数spi_t spi_open (void* param, void* func)【功能】:打开SPI接口对象【参数】: void* param:创建参数设置结构体指针void* func:中断回调函数参数指针【返回值】:spi句柄类型, 不为零,创建成功;0,创建失败3.6.3.关闭SPI接口函数int spi_close (spi_t* phandle)【功能】:关闭SPI接口对象【参数】: spi_t* phandle:SPI句柄指针【返回值】:int类型, 0,成功;其他,出错3.6.4.SPI接口设置函数int spi_ claim (spi_

    27、t handle, int cs, int freq)【功能】:SPI接口设置操作【参数】: spi_t handle:SPI接口句柄int cs:片选选择int freq:接口工作频率【返回值】:int类型,0,成功;其他,出错3.6.5.SPI接口读操作函数int spi_read (spi_t handle, char* pcmd, int cmdsize, char* pdata, int size)【功能】:SPI接口读操作函数【参数】: spi_t handle:SPI接口句柄char* pcmd:命令数据存放地址int cmdsize:命令数据长度char* pdata:读数据存

    28、放地址int size:读数据长度(按字节)【返回值】:int类型, 0,成功;其他,出错3.6.6.SPI接口写操作函数int spi_write (spi_t handle, char* pcmd, int cmdsize, char* pdata, int size)【功能】:SPI接口写操作函数【参数】: spi_t handle:SPI接口句柄char* pcmd:命令数据存放地址int cmdsize:命令数据长度char* pdata:写数据存放地址int size:写数据长度(按字节)【返回值】:int类型, 0,成功;其他,出错3.7.GPIO接口操作GPIO接口是C6678芯片的基本接口,提供外部中断输入。操作系统提供GPIO接口的


    注意事项

    本文(TMS320C6678平台函数接口要求.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开