没有合适的资源?快使用搜索试试~ 我知道了~
首页Xilinx SDK:LwIP 1.06a驱动与库文档指南
Xilinx SDK:LwIP 1.06a驱动与库文档指南
需积分: 9 0 下载量 124 浏览量
更新于2024-07-15
收藏 2.97MB PDF 举报
"《OS和Libraries Document Collection.pdf》是一份详细的文档集合,由Xilinx公司发布,日期为2013年10月23日。这份文档集专为Xilinx的软件开发提供支持,包括驱动程序、库、板级支持包以及操作系统,旨在帮助开发者构建一个完整的软件平台。文档内容涵盖了Xilinx特定的知识产权和商标,如Virtex、Spartan、ISE等,这些都是Xilinx在美国和其他国家的注册商标,同时也列出了其他公司的相关商标。 文档的核心部分是《LibXil Standard CLibraries》,它介绍了针对嵌入式处理器设计的一系列软件库。这些标准库是为简化编程任务而提供的,旨在优化性能和资源管理。Standalone版本(v.3.11.a)作为一个独立的开发平台,提供了独立于硬件的环境,允许用户在没有特定设备支持的情况下进行软件开发和调试。 此文档还包括了操作系统相关的文档,但详细信息可能需要参考相应的参考指南,因为这些系统通常有各自独立的完整文档。文档列表提供了方便的索引,只需点击文档名称即可访问详细内容。这份文档集合对于Xilinx用户来说,是开发过程中不可或缺的参考资料,无论是新手还是经验丰富的工程师,都能从中找到所需的技术支持和指导,以提升开发效率和产品质量。"
资源详情
资源推荐
6 www.xilinx.com UG647 October 23, 2013
MicroBlaze Processor API
void Xil_DCacheInvalidate()
Invalidate the data cache.
If the L2 cache system is present in the hardware, this function invalidates the L2 cache first,
before invalidating the L1 cache.
Note:
For MicroBlaze processors prior to version v7.20.a:
The cache and interrupts are disabled before invalidation starts and restored to their previous state after
invalidation.
void Xil_DCacheInvalidateRange(unsigned int cache_addr,
unsigned int cache_size
Invalidate the data cache. This function can be used for invalidating all or part of the data cache.
The parameter
cache_addr indicates the beginning of the cache location and cache_size
represents the size from
cache_addr to invalidate.
Note that cache lines will be invalidated starting from the cache line to which cache_addr
belongs and ending at the cache line containing the address (
cache_addr +
cache_size - 1).
If the L2 cache system is present in the hardware, this function invalidates the relevant L2
cache range first, before invalidating the L1 cache range.
Note:
For MicroBlaze processors prior to version v7.20.a:
The cache and interrupts are disabled before invalidation starts and restored to their previous state after
invalidation.
For example, Xil_DCacheInvalidateRange (0x00000300, 0x100) invalidates the data
cache region from 0x300 to 0x3ff (0x100 bytes of cache memory is cleared starting from
0x300).
Software Sequence for Initializing Instruction and Data Caches
Typically, before using the cache, your program must perform a particular sequence of cache
operations to ensure that invalid/dirty data in the cache is not being used by the processor. This
would typically happen during repeated program downloads and executions.
The following example snippets show the necessary software sequence for initializing
instruction and data caches in your program.
/* Initialize ICache *//
Xil_ICacheInvalidate ();
Xil_ICacheEnable ();
/* Initialize DCache */
Xil_DCacheInvalidate ();
Xil_DCacheEnable ();
At the end of your program, you should also put in a sequence similar to the example snippet
below. This ensures that the cache and external memory are left in a valid and clean state.
/* Clean up DCache. For writeback caches, the disable_dcache routine
internally does the flush and invalidate. For write through caches,
an explicit invalidation must be performed on the entire cache. */
#if XPAR_MICROBLAZE_DCACHE_USE_WRITEBACK == 0
Xil_DCacheInvalidate ();
#endif
Xil_DCacheDisable ();
Send Feedback
MicroBlaze Processor API
UG647 October 23, 2013 www.xilinx.com 7
/* Clean up ICache */
Xil_ICacheInvalidate ();
Xil_ICacheDisable ();
MicroBlaze Processor Fast Simplex Link (FSL) Interface Macros
Standalone includes macros to provide convenient access to accelerators connected to the
MicroBlaze Fast Simplex Link (FSL) Interfaces.
MicroBlaze Processor Fast Simplex Link (FSL) Interface Macro Summary
The following is a list of the available macros. Click on a macro name to go to the description of
the active macros.
MicroBlaze Processor FSL Macro Descriptions
The following macros provide access to all of the functionality of the MicroBlaze FSL feature in
one simple and parameterized interface. Some capabilities are available on MicroBlaze v7.00.a
and later only, as noted in the descriptions.
In the macro descriptions,
val refers to a variable in your program that can be the source or
sink of the FSL operation.
Note:
id must be an integer literal in the basic versions of the macro (getfslx, putfslx,
tgetfslx, tputfslx) and can be an integer literal or an integer variable in the dynamic versions of the
macros (getdfslx, putdfslx, tgetdfslx, tputdfslx.)
You must include fsl.h in your source files to make these macros available.
getfslx(val,id,flags)
Performs a get function on an input FSL of the MicroBlaze processor; id is the FSL identifier
and is a literal in the range of 0 to 7 (0 to 15 for MicroBlaze v7.00.a and later). The semantics
of the instruction is determined by the valid FSL macro flags, which are listed in Table 2,
page 9.
putfslx(val,id,flags)
Performs a put function on an input FSL of the MicroBlaze processor; id is the FSL identifier
and is a literal in the range of 0 to 7 (0 to 15 for MicroBlaze processor v7.00.a and later).
The semantics of the instruction is determined by the valid FSL macro flags, which are listed in
Table 2, page 9.
tgetfslx(val,id,flags)
Performs a test get function on an input FSL of the MicroBlaze processor; id is the FSL identifier
and is a literal in the ranging of 0 to 7 (0 to 15 for MicroBlaze v7.00.a and later). This macro can
be used to test reading a single value from the FSL. The semantics of the instruction is
determined by the valid FSL macro flags, which are listed in Table 2, page 9.
getfslx(val,id,flags)
putfslx(val,id,flags)
tgetfslx(val,id,flags)
getd fslx(val,id,flags)
putdfslx(val,id,flags)
tgetdfslx(val,id,flags)
tputdfslx(val,id,flags)
fsl_isinvalid(invalid)
fsl_iserror(error)
Send Feedback
8 www.xilinx.com UG647 October 23, 2013
MicroBlaze Processor API
tputfslx(val,id,flags)
Performs a put function on an input FSL of the MicroBlaze processor; id is the FSL identifier
and is a literal in the range of 0 to 7 (0 to 15 for MicroBlaze processor v7.00.a and later). This
macro can be used to test writing a single value to the FSL.The semantics of the put instruction
is determined by the valid FSL macro flags, which are listed in Table 2, page 9.
getd fslx(val,id,flags)
Performs a get function on an input FSL of the MicroBlaze processor; id is the FSL identifier
and is an integer value or variable in the range of 0 to 15. The semantics of the instruction is
determined by the valid FSL macro flags, which are listed in Table 2, page 9. This macro is
available on MicroBlaze processor v7.00.a and later only.
putdfslx(val,id,flags)
Performs a put function on an input FSL of the MicroBlaze processor; id is the FSL identifier
and is an integer value or variable in the range of 0 to 15. The semantics of the instruction is
determined by the valid FSL macro flags, which are listed in Table 2, page 9. This macro is
available on MicroBlaze processor v7.00.a and later only.
tgetdfslx(val,id,flags)
Performs a test get function on an input FSL of the MicroBlaze processor; id is the FSL identifier
and is an integer or variable in the range of 0 to 15. This macro can be used to test reading a
single value from the FSL. The semantics of the instruction is determined by the valid FSL
macro flags, listed in Table 2. This macro is available on MicroBlaze processor v7.00.a and
later only.
tputdfslx(val,id,flags)
Performs a put function on an input FSL of the MicroBlaze processor; id is the FSL identifier
and is an integer or variable in the range of 0 to 15. This macro can be used to test writing a
single value to the FSL.The semantics of the instruction is determined by the valid FSL macro
flags, listed in Table 2. This macro is available on MicroBlaze processor v7.00.a and later only.
fsl_isinvalid(invalid)
Checks if the last FSL operation returned valid data. This macro is applicable after invoking a
non-blocking FSL put or get instruction. If there was no data on the FSL channel on a get, or if
the FSL channel was full on a put,
invalid is set to 1; otherwise, it is set to 0.
fsl_iserror(error)
This macro is used to check if the last FSL operation set an error flag. This macro is applicable
after invoking a control FSL put or get instruction. If the control bit was set
error is set to 1;
otherwise, it is set to 0.
Send Feedback
MicroBlaze Processor API
UG647 October 23, 2013 www.xilinx.com 9
MicroBlaze Processor FSL Macro Flags
Table 2 lists the available FSL Macro flags.
Deprecated MicroBlaze Processor Fast Simplex Link (FSL) Macros
The following macros are deprecated:
getfsl(val,id)(deprecated)
Performs a blocking data get function on an input FSL of the MicroBlaze processor; id is the
FSL identifier in the range of 0 to 7. This macro is uninterruptible.
putfsl(val,id)(deprecated)
Performs a blocking data put function on an output FSL of the MicroBlaze processor; id is the
FSL identifier in the range of 0 to 7. This macro is uninterruptible.
Table 2: FSL Macro Flags
Flag Description
FSL_DEFAULT
Blocking semantics (on MicroBlaze processor v7.00.a
and later this mode is interruptible).
FSL_NONBLOCKING
Non-blocking semantics.
1
1. When non-blocking semantics are not applied, blocking semantics are implied.
FSL_EXCEPTION
Generate exceptions on control bit mismatch.
2
2. This combination of flags is available only on MicroBlaze processor v7.00.a and later versions.
FSL_CONTROL
Control semantics.
FSL_ATOMIC
Atomic semantics.
A sequence of FSL instructions cannot be interrupted.
FSL_NONBLOCKING_EXCEPTION
Combines non-blocking and exception semantics.
FSL_NONBLOCKING_CONTROL
Combines non-blocking and control semantics.
FSL_NONBLOCKING_ATOMIC
Combines non-blocking and atomic semantics.
FSL_EXCEPTION_CONTROL
Combines exception and control semantics.
FSL_EXCEPTION_ATOMIC
Combines exception and atomic semantics.
FSL_CONTROL_ATOMIC
Combines control and atomic semantics.
FSL_NONBLOCKING_EXCEPTION_
CONTROL
Combines non-blocking, exception, and control
semantics.
2
FSL_NONBLOCKING_EXCEPTION_
ATOMIC
Combines non-blocking, exception, and atomic
semantics.
FSL_NONBLOCKING_CONTROL_
ATOMIC
Combines non-blocking, atomic, and control semantics.
FSL_EXCEPTION_CONTROL_
ATOMIC
Combines exception, atomic, and control semantics.
FSL_NONBLOCKING_EXCEPTION_
CONTROL_ATOMIC
Combines non-blocking, exception, control, and atomic
semantics.
Send Feedback
10 www.xilinx.com UG647 October 23, 2013
MicroBlaze Processor API
ngetfsl(val,id)(deprecated)
Performs a non-blocking data get function on an input FSL of the MicroBlaze processor; id is
the FSL identifier in the range of 0 to 7.
nputfsl(val,id)(deprecated)
Performs a non-blocking data put function on an output FSL of the MicroBlaze processor; id is
the FSL identifier in the range of 0 to 7.
cgetfsl(val, id)(deprecated)
Performs a blocking control get function on an input FSL of the MicroBlaze processor; id is the
FSL identifier in the range of 0 to 7. This macro is uninterruptible.
cputfsl(val, id)(deprecated)
Performs a blocking control put function on an output FSL of the MicroBlaze processor; id is
the FSL identifier in the range of 0 to 7. This macro is uninterruptible.
ncgetfsl(val, id)(deprecated)
Performs a non-blocking control get function on an input FSL of the MicroBlaze processor; id
is the FSL identifier in the range of 0 to 7.
ncputfsl(val, id)(deprecated)
Performs a non-blocking control put function on an output FSL of the MicroBlaze processor; id
is the FSL identifier in the range of 0 to 7.
getfsl_interruptible(val, id)(deprecated)
Performs repeated non-blocking data get operations on an input FSL of the MicroBlaze
processor until valid data is actually fetched;
id is the FSL identifier in the range of 0 to 7.
Because the FSL access is non-blocking, interrupts will be serviced by the processor.
putfsl_interruptible(val, id)(deprecated)
Performs repeated non-blocking data put operations on an output FSL of the MicroBlaze
processor until valid data is sent out;
id is the FSL identifier in the range of 0 to 7. Because the
FSL access is non-blocking, interrupts will be serviced by the processor.
Send Feedback
剩余207页未读,继续阅读
协议森林
- 粉丝: 424
- 资源: 48
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 构建Cadence PSpice仿真模型库教程
- VMware 10.0安装指南:步骤详解与网络、文件共享解决方案
- 中国互联网20周年必读:影响行业的100本经典书籍
- SQL Server 2000 Analysis Services的经典MDX查询示例
- VC6.0 MFC操作Excel教程:亲测Win7下的应用与保存技巧
- 使用Python NetworkX处理网络图
- 科技驱动:计算机控制技术的革新与应用
- MF-1型机器人硬件与robobasic编程详解
- ADC性能指标解析:超越位数、SNR和谐波
- 通用示波器改造为逻辑分析仪:0-1字符显示与电路设计
- C++实现TCP控制台客户端
- SOA架构下ESB在卷烟厂的信息整合与决策支持
- 三维人脸识别:技术进展与应用解析
- 单张人脸图像的眼镜边框自动去除方法
- C语言绘制图形:余弦曲线与正弦函数示例
- Matlab 文件操作入门:fopen、fclose、fprintf、fscanf 等函数使用详解
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功