%# -*- coding: utf-8-unix -*- \chapter{FAST软件编程入门指南} \label{app:fast} \subsection{前言} 本文档的主要阅读对象是首次使用FAST平台进行软件开发的工作人员。 文档主要描述了FAST架构软件的主要功能、如何获取软件代码、 介绍软件架构与对应代码结构、编译运行FAST代码。 详细介绍了FAST开发的主要使用函数, 描述了用户如何使用开发函数进行自己代码的开发流程, 最后提供一个完整的开发示例说明,供初学者学习使用。 \subsection{FAST能做什么} FAST平台的主要功能是软硬件配合的网络分组处理功能, 硬件的主要作用是解析报文,对报文进行查表匹配, 进行指定的动作处理,然后分发报文。 报文分发可以直接转发到硬件端口,也可以送到CPU端的UA进程再处理, UA处理完成后可以再通过硬件转发从端口输出。 软件的主要功能有两点: 一是对硬件的流表与对应动作进行配置,指定报文从硬件端口转发或送到CPU端的UA; 二是处理硬件无法处理的报文,处理完成后再转发到硬件输出。 FAST软件的编程主要包括UA编程、规则管理编程和寄存器访问控制编程。 UA编程主要处理硬件送到指定软件的分组数据; 规则管理编程主要是对硬件流表的读写管理; 寄存器访问控制编程主要是对硬件各寄存器资源的访问控制。 对硬件规则的读写与对硬件其他寄存器的读写需要了解FAST架构的虚拟地址空间定义。