/*
* Copyright (c) 2011, Texas Instruments Incorporated
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* * Neither the name of Texas Instruments Incorporated nor the names of
* its contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/*
* This is a little header file which doxygen parses to generate the main
* documentation page for the ti.rcm package.
*/
/*!
* @page ti_rcm Remote Command Message Overview
*
* @section modules Modules
*
* Remote Command Message - message based remote function execution
*
* The Remote Command Message (RCM) package provides a client/server
* implementation for executing functions on a remote processor. The
* package contains the following modules.
* - @ref ti_rcm_RcmClient "RcmClient" - Client Module
* - @ref ti_rcm_RcmServer "RcmServer" - Server Module
*
* This package provides modules for a client/server based implementation
* for executing functions on a remote processor. The IPC layer is based
* on messages. The application uses the RcmClient module to allocate a
* message, specify the remote function and its arguments, and then send
* the message to the server for execution. When the message returns, it
* contains the remote function's return values. The server is typically
* on a remote processor, but local server instances (on the same processor
* as the client) are also supported.
*
* The following image provides an overview of a typical use case. An
* application running on the local cpu creates an RcmClient instance.
* Using the RcmClient instance handle, the application has access to all
* the necessary operations for executing a message on the remote server.
* The application must fill in the message with the remote function
* index, as supplied by the server, and the context needed by the remote
* function to execute. For higher level operations such as RPC, see the
* <tt>link ti.rpc.gen</tt> package which provides support for generating
* the stub and skeleton functions.
*
* @image html ti/rcm/doc-files/Overview.png "Diagram 1: RCM Overview"
*
* The RcmClient module is used to create instance objects. Each instance
* can send messages only to the server specified at create time. You
* create an instance for each server you want to send messages to. At
* create time the heap must be specified. The heap is used by the instance
* for allocating messages.
*
* There are four types of execute commands:
* - synchronous blocking
* - synchronous non-blocking
* - synchronous deferred
* - asynchronous non-blocking
*
* Here is an overview of the exec commands. See the
* @ref ti_rcm_RcmClient "RcmClient" module for more details on each
* function.
*
* - RcmClient_exec() - synchronous blocking
* This function sends a message to the server and waits for the server
* to execute the message and to send the return message back to the
* client.
*
* - RcmClient_execNoWait() - synchronous non-blocking
* This function sends a message to the server but does not wait for the
* return message. Control returns to the caller as soon as the message
* has been delivered to the underlying transport. The server will
* execute the message and send the return message back to the client
* where it is placed in a mailbox. The client collects the return message
* with a call to RcmClient_waitUntilDone() which is a blocking call.
* This is useful when the client has more work to do while the remote
* function is executing. It is also efficient because it does not require
* a local callback thread.
*
* - RcmClient_execDpc() - synchronous deferred
* This function sends a message to the server and waits for the return
* message. When the server receives the message, it does not immediately
* execute it. Instead, it copies the message context into a local buffer
* and sends the message back to the client. Only after the message has
* been sent to the client, does the server execute the function. This is
* useful for server shutdown. This allows the client to regain ownership
* of the message and to return it to the heap and allows the server to
* shutdown without owning any resources allocated by the client.
*
* - RcmClient_execAsync() - asynchronous non-blocking
* This function sends a message to the server but does not wait for the
* return message. Control returns to the caller as in the synchronous
* non-blocking case above. The server will execute the message and send
* the return message back to the client for delivery to a callback
* thread. When the return message arrives, the callback thread will
* invoke an application callback to notify the application that the
* return message has arrived. This is the only asynchronous part of the
* sequence as the application will be preempted by the callback thread.
* It is the application's responsibility to periodically monitor a flag
* (set by the callback) to complete the message delivery.
*
* <h2>RTSC Configuration</h2>
*
* When using XDCtools to build your executable, use the following module
* to define the build time configuration options.
*
* @rtsc(ti.rcm.Settings RCM Settings Module)
*/
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
SysBIOS-rpmsg (137个子文件)
package.bld 5KB
config.bld 3KB
package.bld 3KB
package.bld 3KB
package.bld 3KB
package.bld 2KB
package.bld 2KB
package.bld 2KB
package.bld 2KB
package.bld 2KB
package.bld 2KB
package.bld 2KB
build_samples 330B
dload.c 162KB
arm_reloc.c 77KB
RcmServer.c 75KB
c60_reloc.c 50KB
RcmClient.c 47KB
dlw_dsbt.c 28KB
dlw_trgmem.c 26KB
dlw_client.c 24KB
dlw_debug.c 21KB
symtab.c 20KB
elf32.c 19KB
MessageQCopy.c 18KB
VirtQueue.c 15KB
VirtQueue_norouting.c 15KB
ServiceMgr.c 11KB
IpcResource.c 11KB
resmgr_task.c 10KB
c60_dynamic.c 10KB
test_omx.c 8KB
InterruptM3.c 8KB
omx_sample.c 8KB
InterruptM3_norouting.c 7KB
omx_benchmark.c 7KB
dload_endian.c 7KB
ArrayList.c 6KB
rpmsgcio.c 6KB
arm_dynamic.c 5KB
InterruptDsp.c 5KB
IpcPower.c 4KB
readrprc.c 4KB
ping_tasks.c 4KB
genbase.c 3KB
NameMap.c 3KB
RcmUtils.c 2KB
wrints.c 2KB
DucatiAmmu.cfg 8KB
DucatiCore0.cfg 3KB
DucatiCore1.cfg 3KB
test_omx_core0.cfg 2KB
test_omx_core1.cfg 2KB
genrprc 8KB
.gitignore 457B
.gitignore 179B
dload_api.h 43KB
elf32.h 41KB
RcmClient.h 34KB
dload.h 18KB
RcmServer.h 17KB
Queue.h 13KB
arm_elf32.h 11KB
Stack.h 10KB
MessageQCopy.h 10KB
rsc_table.h 9KB
dload4430.h 9KB
dlw_debug.h 8KB
c60_elf32.h 7KB
VirtQueue.h 7KB
IpcResource.h 6KB
RcmTypes.h 6KB
virtio_ring.h 6KB
dlw_dsbt.h 5KB
ArrayList.h 5KB
dlw_trgmem.h 4KB
rpmsg_omx.h 4KB
omx_packet.h 4KB
omx_packet.h 4KB
symtab.h 4KB
ServiceMgr.h 4KB
Std.h 3KB
relocate.h 3KB
_IpcResource.h 3KB
_IpcPower.h 3KB
IpcPower.h 3KB
rprcfmt.h 3KB
util.h 3KB
dload_endian.h 3KB
InterruptM3.h 2KB
arm_dynamic.h 2KB
InterruptDsp.h 2KB
c60_dynamic.h 2KB
std_linux.h 2KB
NameMap.h 2KB
prologue.mak 2KB
Makefile 3KB
Makefile 2KB
Makefile 2KB
mkheader 2KB
共 137 条
- 1
- 2
资源评论
- 屎徒行者haha2020-01-10找到了,谢谢
Sinner
- 粉丝: 10
- 资源: 24
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- mmqrcode1714153659780.png
- Screenshot_2024-04-27-06-08-58-486_com.baidu.xin.aiqicha.jpg
- 基于Javaweb+Tomcat+MySQL的大学生公寓管理系统+sql文件.zip
- 实训作业基于javaweb的订单管理系统源码+数据库+实训报告.zip
- 多机调度问题贪心算法基于最小堆和贪心算法求解多机调度问题.zip
- 基于同态加密技术的匿名电子投票系统源码.zip
- Pyqt5项目框架-PyQt项目开发实践
- 基于C通过MQTT的智能农业大棚管理系统(本科毕业设计)
- python+CNN的网络入侵检测算法源码.zip
- js 实现记住密码功能 js.cookie.min.js
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功