ZHCUAV8W january 1998 – march 2023 66AK2E05 , 66AK2H06 , 66AK2H12 , 66AK2H14 , AM1705 , AM1707 , AM1802 , AM1806 , AM1808 , AM1810 , AM5K2E04 , OMAP-L132 , OMAP-L137 , OMAP-L138 , SM470R1B1M-HT , TMS470R1A288 , TMS470R1A384 , TMS470R1A64 , TMS470R1B1M , TMS470R1B512 , TMS470R1B768
通过 add_device 函数,您可以添加和使用器件。通过 add_device 注册器件后,高级 I/O 例程便可用于该器件上的 I/O。
您可以使用不同的协议来与任何所需器件进行通信,并使用 add_device 来安装该协议;不过,不应修改主机函数。默认流 stdin、stdout 和 stderr 可以按照Example7-1 中所示使用 freopen() 来重新映射至用户定义的器件而非主机上的文件。如果以这种方式重新打开这些默认流,缓冲模式将更改为 _IOFBF(全缓冲)。若要恢复默认的缓冲行为,请在每个重新打开的文件中使用适当的值(对于 stdin 和 stdout,为 _IOLBF;对于 stderr,则为 _IONBF)来调用 setvbuf。
默认流 stdin、stdout 和 stderr 可以按照Example7-1 中所示使用 freopen() 来映射至用户定义的器件而非主机上的文件。每个函数都必须根据需要设置和维护自身的数据结构。一些函数定义不执行任何操作并只应返回值。
使用唯一的函数名称
函数名称 open、read、write、close、lseek、rename 和 unlink 供低级例程使用。对于由您编写的器件级别函数,请使用其他名称。
使用低级函数 add_device() 将器件添加至 device_table。器件表是一个静态定义并支持 n 个器件的数组,其中 n 由 stdio.h/cstdio 中的宏命令 _NDEVICE 定义。
器件表的第一个条目预定义为运行调试器的主机器件。低级例程 add_device() 会在器件表中查找第一个空位置,然后使用传递的参数对器件字段进行初始化。如需完整说明,请参阅 add_device 函数。