基于STM32Cube上的FatFS的开发应用程序

基于STM32Cube上的FatFS的开发应用程序
基于STM32Cube上的FatFS的开发应用程序

2014年6月DocID025800 Rev 21/26

UM1721用户手册

在STM32Cube 上开发FatFs 相关应用

前言

STMCube TM 计划源自意法半导体,旨在通过减少开发的工作量、时间与成本,使开发者受益。STM32Cube 涵盖STM32产品组合。STM32Cube 1.x 版包括:?图形软件配置工具STM32CubeMX ,可通过图形向导生成IAR/KEIL 工程。

?

针对每个系列提供综合的嵌入式软件平台(即STM32CubeF4用于STM32F4系列)–STM32抽象层嵌入式软件STM32Cube HAL ,确保在STM32各个产品之间实现最大限度的可移植性

–一套一致的中间件,比如RTOS 、USB 、TCP/IP 、图形–

所有嵌入式软件实用工具均配备一套完整的示例。

文件系统是指文件命名的方式,以及文件的逻辑存储位置,以便进行保存和检索。它的主要目标是管理文件数据的访问,以及管理包含这些文件的设备的可用空间。文件系统可帮助用户确保可靠性并以高效的方式来组织数据。

本用户手册的目标读者为在STM32微控制器上使用STM32Cube 固件的开发者。它完整描述了如何使用具有通用FAT 文件系统(FatFs )的STM32Cube 固件组件;本用户手册还提供了一组示例说,它们基于通用FatFs 所提供的API 。

关于所使用的FatFs 固件组件版本,请参考STM32Cube 固件包的发布文档。

本文档适用于所有STM32器件;然而为了简洁起见,以STM32F4xx 器件和STM32CubeF4作为参考平台。如需了解更多关于STM32器件所支持的物理介质盘和实现示例,请参考相关STM32Cube 固件包中所提供的readme

文件。

https://www.360docs.net/doc/695753904.html,

目录UM1721目录

缩略语与定义. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1FAT文件系统概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

1.1FAT概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

1.1.1主引导记录 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

1.1.2FAT分区. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

1.1.3FAT许可. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2FatFs文件系统. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.1FatFs概述. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.2FatFs架构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.3FatFs许可 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11

2.4FatFs特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11

2.4.1复制文件访问 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.4.2可重入性. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.4.3长文件名. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.5FatFs API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.6FatFs底层API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.7将FatFs整合至STM32CubeF4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2.7.1FATFS_LinkDriver() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.7.2FATFS_UnlinkDriver() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.7.3FATFS_GetAttachedDriverNbr() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2.8将自己的磁盘连接至FatFs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

3FatFs应用程序. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

3.1HAL驱动配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

3.2FatFs文件系统配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.2.1可重入性. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.2.2长文件名. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.3FatFs示例应用程序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 4结论 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

2/26DocID025800 Rev 2

UM1721目录5FAQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 6修订历史 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

DocID025800 Rev 23/26

表格索引UM1721表格索引

表1.缩略语与定义 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6表2.“Diskio_drv_TypeDef”结构 14

表3.“Disk_drv_TypeDef”结构 14

表4.FatFs中间件使用示例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19表5.文档修订历史 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 4/26DocID025800 Rev 2

UM1721图片索引图片索引

图1.MBR的高层视图. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7图2.设备上的两个FAT分区 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8图3.FatFs架构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10图4.FatFs许可 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11图5.FatFs中间件模块架构. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

DocID025800 Rev 25/26

缩略语与定义UM1721缩略语与定义

表 1. 缩略语与定义

缩略语定义

ANSI美国国家标准协会

API应用编程接口

BPB BIOS参数块

BSP板级支持包

CPU中央处理器

CMSIS Cortex?微控制器软件接口标准

DBCS双字节字符串

DOS磁盘操作系统

EFI可扩展固件接口

FAT文件分配表

HAL硬件抽象层

LFN长文件名

MBR主引导记录

MSD微型安全数字

OEM原始设备制造商

RAM随机存取存储器

RTC实时时钟

RTOS实时操作系统

SD安全数字

SDRAM同步动态随机存取存储器

SFN短文件名

SRAM静态随机存取存储器

USB通用串行总线

6/26DocID025800 Rev 2

DocID025800 Rev 2

7/26

UM1721FAT 文件系统概述

1 FAT 文件系统概述

1.1 FAT 概述

文件分配表(FAT )文件系统是由比尔盖茨与麦克唐纳所开发。它是一种格式,某种程度上也算是软件,它用于在存储设备(比如磁盘驱动或内存)上保存和组织文件。它用于方便文件与目录的访问。

FAT 文件系统提供一种途径来记录文件被创建或更改时的时间标记,并且提供了识别文件大小的方法。这套系统提供了保存文件其它属性的一套机制,比如文件是否只读,是否应在目录显示中隐藏,或者是否应在下一次磁盘备份中归档。

FAT 文件系统特别适合消费电子产品中的移动闪存介质,比如数码相机、媒体播放器和闪存盘等。

FAT 文件系统可以在以下场合中带来帮助:?由于FAT 文件系统具备向后兼容性,用户可以利用记忆棒或软盘在消费电子设备和采用过时操作系统的计算机之间传输文件。

?FAT 文件系统让用户能够快速删除电子设备上的文件,就像在专业广播媒介中那样。?

FAT16或FAT32的文件系统版本均适用于硬盘卷。

另外,如果用户想要通过软盘访问硬盘卷上的数据(往往指系统恢复工具)来引导计算机的话,这些版本也很有用处。

1.1.1 主引导记录

主引导记录(MBR )位于设备物理起始位置上的一个或多个扇区。MBR 的引导区包含DOS 引导加载程序代码,该代码会在设备格式化后被写入(否则不会被动态C FAT 文件系统所使 用)。引导区之后是分区表。分区表中含有四个16字节的条目,允许设备划分多达四个分区。分区表条目中含有一些关键信息:分区类型(动态C FAT 可识别FAT12和FAT16的分区类 型)以及分区的起始与结束扇区号。另外还有一个字段指明分区中的扇区总数。如果该数字为零,则对应的分区是空的可用分区。

某些设备经格式化后没写入MBR ,因此便也没有分区表。目前在动态C FAT 文件系统中并不 支持这种配置。

[ %( [ &( [ '( [ (( [ )(

[

? ? 喋0%5喌

?

?

FAT文件系统概述UM1721

1.1.2 FAT分区

有效FAT文件系统分区的第一个扇区中包含BIOS参数块(BPB),之后是文件分配表

(FAT),再之后是根目录。下图显示了具备两个FAT分区的设备。

BIOS参数块

BPB中的字段包含该分区的描述信息:

?每个扇区的字节数;

?每个簇的扇区数;

?该分区的扇区总数;

?根目录下的条目数。

FAT分配表

文件分配表是一种结构,也是FAT文件系统的命名由来。FAT中保存了关于簇的分配信息。

一个簇既可以分配给一个文件,也可以使用,还可以标记为坏簇。FAT分配表的副本会紧跟

着第一个FAT分配表存放。

根目录

根目录具有预定义的位置及大小。根目录有512个条目,每个条目32字节。根目录中的条目

既可以是空条目,也可以包含文件或子目录名称(以8.3格式)、文件大小、上一次修改的日

期时间以及文件或子目录的起始簇号。

数据区

数据区占据了分区中的大部分空间。其中包含文件数据与子目录。请注意,按照惯例,分区

的数据区必须从第2簇开始。

欲了解更多信息,请参考Microsoft? EFI FAT32文件系统规范。

1.1.3 FAT许可

Microsoft可扩展固件计划FAT32文件系统规范, 1.03版,2000年12月6日, Office Word

文档格式(268 KB)。

8/26DocID025800 Rev 2

UM1721FAT文件系统概述

下载许可协议仅允许结合可扩展固件计划规范(v1.0)中的固件实现来使用Microsoft EFI

FAT32文件系统规范。 1.0.如果计划将FAT32文件系统规范用于其它用途,必须从Microsoft

获取额外的许可。

比如,必须获取额外的许可,才能创建用于读取的文件系统;在数码相机中读取和写入FAT32

闪存介质;在计算机操作系统中读取和写入内部/外部硬盘或闪存介质;又或者读取机顶盒中

FA格式的介质。

欲了解更多关于FAT和适用许可证和/或版权的信息,请参考Microsoft网站。

DocID025800 Rev 29/26

FatFs 文件系统UM1721

10/26DocID025800 Rev 2

2 FatFs 文件系统

2.1 FatFs 概述

FatFs 是适用于小型嵌入式系统的FAT 文件系统模块。FatFs 是按照ANSI C 的标准来指定, 且与磁盘I/O 层完全分隔开。因此,FatFs 与硬件架构完全无关,具有以下特点: ?兼容Windows 的FAT 文件系统。?极小的代码量和工作区 ?

丰富的配置选项: –多卷(物理驱动与分区)。

–多个ANSI/OEM 代码页,包括DBCS 。–以ANSI/OEM 或Unicode 支持长文件名。–支持RTOS 。–支持多种扇区大小。

只读、最小化的API 、I/O 缓冲等等......–FAT 子类型:FAT12、FAT16和FAT32。–打开的文件数量:无限制,取决于可用的内存。–卷的数量:多达10个。

–文件大小:取决于FAT 规范。(多达4G-1字节)

–卷的大小:取决于FAT 规范。(512字节/扇区情况下,支持多达2T 字节) –簇的大小:取决于FAT 规范。(512字节/扇区情况下,支持多达64K 字节) –

扇区的大小:取决于FAT 规范。(多达4K 字节)

2.2 FatFs 架构

FatFs 模块是一个中间件,提供许多用于访问FAT 卷的函数,比如f_open()、f_close()、

f_read()、f_write()等等(参考ff.c )。该模块没有平台依赖性,只要编译器符合ANSI C 即可。使用底层磁盘I/O 模块来读取/写入物理驱动。采用RTC 模块来获取当前时间。

底层磁盘I/O 和RTC 模块均与FatFs 模块完全分离。它们必须由用户提供,这是将FatFs 模块与其它平台相连的主要工作。

?&??&?? ??/?K

㈧???

UM1721FatFs文件系统

2.3 FatFs许可

图4是包含在源代码中的FatFs许可文档的副本。

为提高其可用性,未规定其二进制形式的重新分发条件,如嵌入式代码、十六进制文件以及

二进制库等。分发文档不必包含关于FatFs及其许可的文档,但也可包含在内。当然,FatFs

与GNU GPL下的项目兼容。进行任意修改再重新分发时,该许可也可以改为GNU GPL或

BSD型的许可。

2.4 FatFs特性

2.4.1 复制文件访问

FatFs模块默认并不支持对复制文件的共享控制。仅当文件的打开方式为只读模式时,才允许

共享控制。禁止以写入模式对文件进行复制打开,而且打开的文件不允许被重命名和删除,否

则会破坏卷的FAT结构。

当将_FS_LOCK设为1或更大的数值时,也可使用文件共享控制。该数值设定了同时管理

的文件数目。在这种情况下,如果尝试“打开”、“重命名”或“删除”等违反上述文件共享规

则的操作,则文件功能失败,提示FR_LOCKED。如果打开的文件数量大于_FS_LOCK,那

么f_open()函数也会执行失败,提示FR_TOO_MANY_OPEN_FILES。

2.4.2 可重入性

对不同卷的文件操作是可重入的,并且可以同时工作。对同一个卷的文件操作是不可重入的,

但可利用_FS_REENTRANT option选项配置为线程安全。在这种情况下,必须将依赖于操

作系统的同步对象控制函数ff_cre_syncobj()、ff_del_syncobj()、ff_req_grant()和ff_rel_grant()

添加到项目中。

当卷被其它任务使用时,如果文件函数被调用,则这个文件函数会保持挂起,直至该任务结

束。如果等待时间超过_TIMEOUT所设定的时间,那么文件函数会以FR_TIMEOUT退出。

某些RTOS并不支持这种超时功能。

DocID025800 Rev 211/26

FatFs 文件系统UM1721

12/26DocID025800 Rev 2

f_mount()和f_mkfs()函数是例外。这些函数对于同一个卷并不具备可重入性。当使用这些函数时,所有其它任务必须关闭该卷上的对应文件,以避免对卷的访问。

请注意,这一节描述的是FatFs 模块本身的可重入性,但底层磁盘I/O 层也必须是可重入的。

2.4.3 长文件名

FatFs 模块从版本0.07开始便支持长文件名(LFN )。除了f_readdir()函数以外,一个文件的SFN 和LFN 这两种不同的文件名对于文件函数来说是透明的。如需使能LFN 功能,请将_USE_LFN 设为1、2或3,然后在项目中添加Unicode 代码转换函数ff_convert()和ff_wtoupper()。LFN 功能需要附加一个特定的工作缓冲。缓冲的大小可根据可用内存大小,利用_MAX_LFN 来进行配置。长文件名可达255个字符,所以_MAX_LFN 应设为255,以实现完全的LFN 功能。如果工作缓冲的大小不足以存放给定的文件名,则文件函数执行失败并提示FR_INVALID_NAME 。当以可重入功能使能LFN 特性时,_USE_LFN 必须设为2或3。这种情况下,文件函数会在栈或堆里分配工作缓冲。工作缓冲会占据(_MAX_LFN + 1) * 2个 字节。

当使能LFN 功能时,模块大小会根据所选择的代码页而有所增大。右表显示了当以某些代码页使能LFN 功能时,所增加的字节数。

2.5 FatFs API

FatFs 的API 层用于执行文件系统API 。它采用磁盘I/O 接口与适当的物理驱动通信。这些

API 可划分为四组:?操作逻辑卷或分区的API 分组。?操作目录的API 分组。?操作文件的API 分组。?操作文件和目录的API 分组。以下列出了FatFs 访问FAT 卷时所能执行的操作:

?f_mount():挂载/卸载逻辑磁盘?f_open():打开/创建文件?f_close():关闭文件?f_read():读取文件?f_write():写入文件

?f_lseek():移动读/写指针,扩大文件的大小?f_truncate():截取文件到当前已读/已写指针位置?f_sync():同步内存中的数据到磁盘?f_opendir():打开一个目录?f_readdir():读取目录条目?f_getfree():获取空闲的簇的数量

?f_stat():检查对象是否存在,并获取其状态?f_mkdir():创建目录

?

f_unlink():删除文件或目录

UM1721FatFs文件系统

?f_chmod():更改属性

?f_utime():更改时间戳

?f_rename():重命名/移动文件或目录

?f_chdir():更改当前目录

?f_chdrive():更改当前驱动

?f_getcwd():检索当前目录

?f_getlabel():获取卷标签

?f_setlabel():设置卷标签

?f_forward():将文件数据直接转发至流

?f_mkfs():在驱动上创建文件系统

?f_fdisk():划分物理驱动

?f_gets():读取字符串

?f_putc():写入字符

?f_puts():写入字符串

?f_printf():写入格式化的字符串

?f_tell():获取当前的读/写指针

?f_eof():检验是否达到文件末尾

?f_size():获取文件大小

?f_error():检验文件是否出错

2.6 FatFs底层API

由于FatFs模块与磁盘I/O和RTC模块完全分离,所以需要一些底层功能来操作物理驱动:

读/写和获取当前时间。因为底层磁盘I/O功能和RTC模块并非FatFs模块的组成部分,所

以必须由用户提供。

FatFs中间件解决方案为某些支持的磁盘驱动(RAMDisk、uSD、USBDisk)提供底层磁盘

I/O驱动。

已添加额外接口层diskio.c,用于为FatFs模块动态添加/删除(链接)物理介质,提供如下

所述的底层磁盘I/O函数:

?disk_initialize():初始化物理磁盘驱动

?disk_status():返回所选物理驱动的状态

?disk_read():读取磁盘中的扇区

?disk_write():将扇区写入磁盘

?disk_ioctl():控制设备的专用功能

?get_fattime():返回当前时间

应用程序禁止调用这些函数,这些函数仅可由FatFs文件系统函数调用,比如f_mount()、

f_read()、f_write()...

DocID025800 Rev 213/26

FatFs文件系统UM1721

2.7 将FatFs整合至STM32CubeF4

在STM32CubeF4解决方案中,已添加额外的接口层,用于动态地添加/删除FatFs模块的

? ??? 依

&??&??

?

?

, >依

^W依

??/?K

UM1721FatFs文件系统

如需将FatFs模块与底层磁盘I/O驱动相连接,用户可以使用以下API:

?FATFS_LinkDriver():用于动态添加磁盘I/O驱动。

?FATFS_UnLinkDriver():用于动态删除磁盘I/O驱动。

?FATFS_GetAttachedDriversNbr():了解当前所连接的磁盘I/O驱动数量

2.7.1 FATFS_LinkDriver()

该函数用于连接兼容的磁盘I/O驱动,并增加已激活连接的驱动的数量。如果成功则返回0,

失败则返回1。

注:因为FatFs方面的限制,所连接的磁盘最大数目(_VOLUMES)为10个。

FATFS_LinkDriver的实现:

uint8_t FATFS_LinkDriver(Diskio_drvTypeDef *drv, char *path)

{

uint8_t ret = 1;

uint8_t DiskNum = 0;

if(disk.nbr <= _VOLUMES)

{

disk.drv[disk.nbr] = drv;

DiskNum = disk.nbr++;

path[0] = DiskNum + '0';

path[1] = ':';

path[2] = '/';

path[3] = 0;

ret = 0;

}

return ret;

}

2.7.2 FATFS_UnlinkDriver()

该函数用于解除与磁盘I/O驱动的连接,并减少已激活连接的驱动数量。如果成功则返回0,

失败则返回1。

FATFS_UnLinkDriver的实现:

uint8_t FATFS_UnLinkDriver(char *path)

{

uint8_t DiskNum = 0;

uint8_t ret = 1;

if(disk.nbr >= 1)

{

DiskNum = path[0] - '0';

if(DiskNum <= disk.nbr)0

{

DocID025800 Rev 215/26

FatFs文件系统UM1721

disk.drv[disk.nbr--] = 0;

ret = 0;

}

}

return ret;

}

2.7.3 FATFS_GetAttachedDriverNbr()

该函数返回已连接至FatFs模块的驱动数量。

FATFS_GetAttachedDriversNbr的实现:

uint8_t FATFS_GetAttachedDriversNbr(void)

{

return disk.nbr;

}

2.8 将自己的磁盘连接至FatFs

如果工作存储控制模块可用,应通过粘合函数连接至FatFs,而不是进行修改。用户可以开发

适当的磁盘I/O底层驱动来连接任意的新磁盘(mynewdisk_diskio.c/.h),并将这些驱动文件

保存在:\Middlewares\Third_Party\FatFs\src\drivers。

值得注意的是,所提供的FatFs磁盘I/O底层驱动依赖于板级BSP驱动。如需移除这种BSP

依赖性,用户可以将“BSP_...”的API调用替换为自己的代码,以确保实现正确的功能性。

如需从头开始开发磁盘I/O底层驱动,用户可以从下述的粘合函数骨架开始,用已定义的API

将现有的存储控制模块添加到FatFs。

适用于FatFs的底层磁盘I/O模块骨架:

/*-------------------------------------------------------------------------*/

/* mynewdisk_diskio.c:适用于FAT的底层磁盘I/O模块框架 */

/*-------------------------------------------------------------------------*/

/* 包含的头文件 -------------------------------------------------------------*/

#include

#include "ff_gen_drv.h"

/* 私有的宏定义 ---------------------------------------------------------*/

#define BLOCK_SIZE 512/* Block Size in Bytes */

/* 私有变量 --------------------------------------- */

static volatile DSTATUS Stat = STA_NOINIT; /* 磁盘状态 */

/* 私有函数原型 --------------------------------------------*/

DSTATUS mynewdisk_initialize (void);

16/26DocID025800 Rev 2

UM1721FatFs文件系统

DSTATUS mynewdisk_status (void);

DRESULT mynewdisk_read (BYTE*, DWORD, BYTE);

#if _USE_WRITE == 1

DRESULT mynewdisk_write (const BYTE*, DWORD, BYTE);

#endif/* _USE_WRITE == 1 */

#if _USE_IOCTL == 1

DRESULT mynewdisk_ioctl (BYTE, void*);

#endif/* _USE_IOCTL == 1 */

Diskio_drvTypeDef mynewdisk_Driver =

{

mynewdisk_initialize,

mynewdisk_status,

mynewdisk_read,

#if _USE_WRITE == 1

mynewdisk_write,

#endif/* _USE_WRITE == 1 */

/*------------------------ 初始化驱动 ---------------------------*/

DSTATUS mynewdisk_initialize (void)

{

Stat = STA_NOINIT;

// 在此写入自己的代码,对驱动进行初始化

Stat &= ~STA_NOINIT;

return Stat;

}

/*------------------------- 获取磁盘状态 -----------------------------*/

DSTATUS mynewdisk_status (void)

{

Stat = STA_NOINIT;

// 在此写入自己的代码

return Stat;

}

/*-------------------------- 读取扇区-----------------------------*/

DRESULT mynewdisk_read (BYTE *buff, /* 保存读取数据的数据缓冲 */

DWORD sector, /* 扇区地址(LBA) */

BYTE count) /* 读取的扇区数(1..128)*/

{

DRESULT res = RES_ERROR;

// 在此写入自己的代码,读取驱动中的扇区

return res;

}

/*--------------------------- 写入扇区 ---------------------------*/

#if _USE_WRITE == 1

DRESULT mynewdisk_write (const BYTE *buff, /* 需写入的数据缓存指针 */

DocID025800 Rev 217/26

FatFs文件系统UM1721

DWORD sector, /* 扇区地址(LBA) */

BYTE count)/* 需写入的扇区数(1..128) */

{

DRESULT res = RES_ERROR;

// 在此写入自己的代码,向驱动写入扇区

return res;

}

#endif /* _USE_WRITE == 1 */

/*------------------------ 其它函数 ----------------------*/

#if _USE_IOCTL == 1

DRESULT mynewdisk_ioctl (BYTE cmd, /* 控制代码 */

void *buff) /* 用于发送/接收控制数据的代码 */

{

DRESULT res = RES_ERROR;

// 在此写入自己的代码,控制驱动专用功能

// CTRL_SYNC、GET_SECTOR_SIZE、GET_SECTOR_COUNT、GET_BLOCK_SIZE

//如控制同步,获取扇区大小,获取扇区数量,获取块大小等

return res;

}

#endif /* _USE_IOCTL == 1 */

底层磁盘I/O模块的头文件:

/*-------------------------------------------------------------------------*/

/* mynewdisk_diskio.h:底层磁盘I/O模块的头文件 */

/*-------------------------------------------------------------------------*/

/* 避免递归包含的定义 ----------------------------------*/

#ifndef __MYNEWDISK_DISKIO_H

#define __MYNEWDISK_DISKIO_H

extern Diskio_drvTypeDef mynewdisk_Driver;

#endif /* __MYNEWDISK_DISKIO_H */

18/26DocID025800 Rev 2

DocID025800 Rev 219/26

UM1721FatFs 应用程序

3 FatFs 应用程序

STM32CubeF4解决方案中提供了许多基于FatFs 中间件的应用程序。下表显示了如何在不同例子中使用FatFs 中间件组件,这些例子按照复杂度分类,并取决于所使用的物理驱动接口(uSD 、RAMDisk 、USBDisk ):

STM32CubeF4解决方案所提供的上述FatFs 应用程序是一套有两种模式的固件:?独立模式

?

RTOS 模式,使用FreeRTOS 中间件组件

值得注意的是,当使用或者开发基于意法半导体磁盘I/O 底层驱动的FatFs 应用程序时,用户必须保证合适的堆栈值。

因此,当使用基于USB 主机大容量存储类的U 盘时,由于对齐的原因,栈的值必须根据最大扇区大小值_MAX_SS 来增加。

当在RTOS 模式中开发任何FatFs 应用程序时,也必须使用基于CMSIS-OS 包覆层通用API 的FreeRTOS 中间件组件对堆数值进行调整。

3.1 HAL 驱动配置

STM32CubeF4解决方案中所提供的FatFs 应用程序是一套用于与各种物理磁盘驱动(uSD 、RAM 盘、USB 盘)相连接的固件。用户需要某些运行FatFs 应用程序所必需的HAL 驱动。相应的HAL 驱动可通过HAL 配置文件stm32f4xx_hal_conf.h 来使能,解除HAL 驱动中所使用的适当模块的注释即可。

表 4. FatFs 中间件使用示例

示例类别示例

说明

起始

单一逻辑单元(RAMDisk )上

的FatFs

将FatFs 模块连接至RAM 上的空磁盘I/O 驱动,然后通过静态缓冲进行安装、打开、写

入、读取和关闭操作。特性

单一逻辑单元上的FatFs

将FatFs 模块连接至uSD 磁盘I/O 驱动,然后通过静态缓冲进行安装、打开、写入、读取

和关闭操作。多个逻辑单元上的FatFs

将FatFs 模块连接至uSD 和RAM 磁盘I/O 驱动,然后通过静态缓冲进行安装、打开、写

入、读取和关闭操作。集成

单一逻辑单元(USB 盘)上的

FatFs

将FatFs 模块连接至USB 主机磁盘I/O 驱动,然后通过静态缓冲进行安装、打开、写

入、读取和关闭操作。

FatFs应用程序UM1721

HAL配置文件中,各个支持的磁盘驱动之间的主要差异在于与所使用的磁盘驱动相对应的正

确HAL驱动的定义。根据各种驱动,以下宏定义必须可用:

?FatFs_uSD:

–#define HAL_SD_MODULE_ENABLED

?FatFs_RAMDisk:

–#define HAL_SDRAM_MODULE_ENABLED 或

–#define HAL_SRAM_MODULE_ENABLED

?FatFs_USBDisk:

–#define HAL_HCD_MODULE_ENABLED

3.2 FatFs文件系统配置

FatFs模块中包含各种配置选项。在这一层级,我们提供信息帮助用户根据所连接的物理磁盘

驱动选择正确的选件,满足用户需求,达到最高性能。

3.2.1 可重入性

可重入性是独立和RTOS模式配置之间的主要差异,这一点可以在FatFs配置文件ffconf.h

中进行设置。

?独立模式中禁用可重入性:

–#define _FS_REENTRANT 0

?RTOS模式中使能可重入性:

–#define _FS_REENTRANT 1

一旦使能后,用户必须提供依赖于OS的同步对象(#define _SYNC_t osSemaphoreId)

RTOS模式应用程序的项目需要包含syscall.c文件,以提供OS依赖函数,可在以下路径找

到:\Middlewares\Third_Party\FatFs\src\option

3.2.2 长文件名

FatFs模块支持长文件名(LFN)以及8.3格式文件名(SFN)。

请注意,FAT文件系统上的LFN功能是微软公司的专利。虽然在FAT32上不是这样,但大多

数FAT32驱动包含LFN功能。FatFs可以通过配置选项切换LFN功能。当在商业产品上使

能LFN功能时,需要根据最终目标获取微软的许可。当使能LFN功能时,可以使用LFN,这

项功能可以在FatFs配置文件ffconf.h中设置:FatFs配置文件ffconf.h中(_USE_LFN > 0)

?禁用LFN功能:

–#define _USE_LFN 0

?使能LFN功能,其中3 ≥ _USE_LFN > 0:

一旦在ffconf.h配置文件中使能之后,应用程序项目需要包含syscall.c/unicode.c文件,以提

供内存管理功能,该文件可在以下路径中找到:\Middlewares\Third_Party\FatFs\src\option

用户在独立模式应用或RTOS模式应用中均可使能LFN功能。

20/26DocID025800 Rev 2

网络应用程序设计教案

网络应用程序设计 课程教案 课 程 名 称: 网络应用程序设计 课 程 编 号: 4112301 学院、专业、年级: 信息科学院计算机科学与技术 任 课 教 师: 段会川 教 师所 在单位: 信息科学与工程学院 山东师范大学

课程简介 计算机网络已经渗透到我们人类社会生活的方方面面,人们所依赖的Internet提供信息和服务的重要渠道是Web网站。在大学本科教学中,教授网络应用程序设计的基本技术和Web网站建设技术是非常必要的。而这正是我们在计算机科学与技术及通信工程本科专业中开设“网络应用程序设计”课程的基本出发点。 网络应用程序设计和Web技术涉及的范围非常宽广,作为一门实用性的课程,我们对课程所需要涉及的内容的教学方法进行了认真的研究,确定了如下的思路:(1)鉴于网络应用程序设计技术的广泛性,课程内容选取了最有代表性的Internet和Web技术,而且从教学方式上以将学生领入为主,选择的内容也是入门性的内容,以期望通过本课程的学习为学生进一步的深入学习和实战性技能打下切实的基础;(2)本课程是一门实践技能性很强的课程,因而我们从教学内容上对理论性内容深入浅出,强调实践技能的培养,加强学生的上机实践操作,使学生在实践中掌握理论,在实践中学会并提高技能;(3)为了加强创新教育,我们选取了开源的Apache Web服务器和PHP建站技术作为课程的主要内容,使学生将来的创新免受软件版权的限制,为产出创新成果提供较大的空间;(4)为使课堂教学有更强的感染力,我们在课件中提供了大量的实例演示,并将实例演示溶入课件中,同时建立了课程网站,并在网站上提供了大量的练习示例。 课程基本内容包括:(1)Web服务器(Apache、IIS);(2)超文本传输协议HTTP与浏览器; (3)HTML基础篇; (4)HTML高级篇: (5)PHP基础篇; (6)PHP高级篇; (12)PHP数据库篇(MSSQL)。

认知语言学在英语学习中的运用

Application of Cognitive Linguistics in English Learning By 潘晓雅 Class: English怀o82 Student Number: 08402507 School of Foreign Languages Changzhou University June 2011

Abstract:This paper discusses the application of cognitive linguistics in different aspects of English learning, for example, the prepositions in grammar, vocabulary, listening and reading. The concept of cognitive linguistics is introduced first. Then the article lays out fundamental analyses in these aspects. The application is mainly introduced for the second language learning. With the help of cognitive linguistics, English learners could break through the bottlenecks of English study and make a great improvement. Keywords: cognitive linguistics, prepositions, vocabulary, listening, reading

《网络应用程序设计》课程设计报告书

网络应用程序设计课程设计报告书 题目:局域网多人聊天室 班级:0991132 学号:1099113202 姓名:赵燃 指导教师:宋毅、王家宁、徐红梅、姚璐 周期:一周 成绩: 2011年12 月23 日

一、课程设计的目的与要求( (一)课程设计目的与任务 (1)课程设计的目的:《网络高级程序设计》是一门实践性很强的计算机专业基础课程,课程设计是学习该课程后进行的一次较全面的综合练习。其目的在于通过实践加深学生对面向对象程序设计的理论、方法和基础知识的理解,掌握使用vc++语言进行面向对象设计的基本方法。提高运用面向对象知识分析实际问题、解决实际问题的能力。 (2)课程设计任务:局域网多人聊天室 该程序实现局域网内的聊天功能,包括服务器端程序和客户端程序两部分。 客户端程序:可连接到服务器,并将消息发送到服务器端和接受服务器端发送来的信息。 服务器端程序:可将消息发送到客户端和接受客户端发送来的消息。 (二)题目要求 该系统要求完成聊天室的全过程,包括客户端和服务器两大部分的编程及其连接。服务器端聊天程序负责接收和发送来自客户端的聊天信息,客户端聊天程序负责建立和维护与服务器端的连接,想服务器发送本客户的聊天内容。系统采用VISUAL C++语言程序设计编程实现。并且按要求编写程序设计报告书,能正确编写分析、设计、编码、测试等技术文档。 二、设计正文 1系统分析 (1)服务器聊天程序要在待定的端口上等待来自聊天客户的连接请求,并且需要维护一个客户连接表,以记录所有成功的连接。 (2)服务器聊天程序要及时接受从各个聊天客户发送过来的信息,然后把这些信息转发到一个或多个客户连接。对于公共聊天室,服务器将把接受到的信息除源端外的所有客户发送过去。 (3)服务器还要监控这些连接的状态。在客户主动离开或发生故障时从列表删除相应的表项,并及时更新连接表。 2功能详细描述及框图 用户首先启动客户端,登陆服务器并向服务器发送信息,启动服务器,服务器等待客户要求并向客户反馈在线用户信息,用户向服务器发送信息,服务器处理用户的数据,然后用户开始聊天,客户端的聊天分为对群聊天和私聊的信息,该信息应通过程序控制分别进行处理。

STM32CubeMX+FreeRTOS学习[7] 软定时器(Lu)

FreeRTOS学习之七:软定时器 前提:默认已经装好MDK V5和STM32CubeMX,并安装了STM32F1xx系列的支持包。 硬件平台:STM32F1xx系列。 目的:学习软定时器的使用。 有时候我们需要定时进行一些例行处理,FreeRTOS提供了软定时器来满足这种需求。软定时器不是FreeRTOS内核的组成部分,它本质上是一种任务,周期性地调用其回调函数。本文例子使用STM32CubeMX配置创建一个软定时器和一个任务,软定时器在回调函数控制LED0的状态,任务控制LED1的状态。 Step1.打开STM32CubeMX,点击“New Project”,选择芯片型号,STM32F103RBTx。 Step2.配置时钟引脚。 Step3.配置PA8和PD2为Output,并把用户标签分别改为LED0,LED1。

Step4.将系统时基源改为TIM4。 Step5.使能FreeRTOS。 Step6.配置时钟树。8M输入时,通过PLL得到72M内部时钟。 Step7.配置FreeRTOS。

在Tasks and Queues选项卡中,默认配置了一个名为defaultTask的任务,其优先级为普通,任务堆栈大小为128字,任务函数名为StartDefaultTask。 双击蓝色的地方,弹出对话框,将任务名修改为LED1,将任务函数名修改为LED1_Task。 在Configure parameters选项卡,使能软定时器,定时器任务的优先级默认为2,定时器队列深度默认为10。(后两个参数在后文有详细说明。) 在Timers and Semaphores选项卡,点击Timers项右边的“Add”按钮,添加一个软定时器,函数改为Timer01_Callback,类型为周期定时器。 注:其他的都使用默认参数。 Step8.生成代码。

自考网络应用程序设计题库答案

自考网络应用程序设计 题库答案 文档编制序号:[KK8UY-LL9IO69-TTO6M3-MTOL89-FTT688]

一、选择题 (1)UDP可以提供的端口数是 65535 (2)根据TCP或UDP端口的分配规则,端口254 保留给特定的服务 (3)保留给其他服务的端口是 256 (4)在Internet中,用三元组标识一个应用层进程。这种三元组,指的是传输层协议,主机的IP地址,传输层的端口号 (5)在Internet中,可以标识一个完整的网间通信的是传输层协议,本地机IP地址,本地机传输层端口,远地机IP地址,远地机传输层端口(6)规定纯文本电子邮件信件的格式的是 RFC822 (7)接收电子邮件的邮局协议是 POP3 (8)因特网上使用最多的一种应用是 email (9)SMTP命令的一般的格式命令关键字参数 (10)SMTP客户问候SMTP服务器命令格式是 HELO 发送方的主机名 (11)写信字段的格式是 MAIL FROM:发信人的电子邮件地址 (12)请求发送邮件内容命令格式: DATA (13)空操作命令格式: NOOP (14)系统状态或系统帮助应答码字是 211 (15)帮助信息的码字是 214 (16)服务器关闭传输通道码字是 221 (17)网易的SMTP服务器的域名是 (18)规定电子邮件信件内容结构的标准是 RFC822

(19)信头字段包括四部分,第一部分是字段名 (20)信头字段的结构包括字段折叠 (21)发送者对发送的发送格式是 Sender:mailbox (22)Win32操作系统下支持多进程多线程机制 (23)阻塞套接字的I/O操作调用、等待、返回 (24)套接字I/O模型,种类数是 5 (25)不是图形界面的操作系统有 DOS (26)一般C程序中的Main或WinMain函数是主线程 (27)Win32操作系统中可调度的最小的执行单位线程 (28)为程序员提供了Windows应用程序的集成开发环境的是 vc++(29)线程分的种类数是 2 (30)在MFC应用程序中,所有的线程是 CWinThread对象 (31)适用于处理那些不要求用户输入并且比较消耗时间的其他任务的是工作线程 (32)一个工作线程对应一个控制函数 (33)创建并启动工作线程的函数 AfxBeginThread (34)用户界面窗口类,包括窗口,对话框 (35)AfxBeginThread()函数的第一个参数是 pThreadClass (36)Windows Internet扩展应用程序高级编程接口 WInternet (37)利用MFC WinInet类来编写Internet应用程序还具的优点支持Web代理服务器访问 (38)封装了HINTERNET会话根句柄的是 CInternetSession类

WEB应用程序设计与开发实训

《WEB应用程序设计与开发实训》课程标准 1.课程定位 本课程是高等职业院校计算机网络技术专业的一门专业核心课程。是学习了C语言程序设计、办公自动化应用、计算机网络基础、WEB应用程序设计与开发等课程的后续课程,其功能在于培养学生从事网站开发的职业能力,并为其就业作前期准备。 2.课程设计理念 该课程是依据计算机网络技术专业的工作任务与职业能力的程序设计工作项目设置的。其总体设计思路是,打破以知识传授为主要特征的传统学科课程模式,转变为以工作任务为中心组织课程内容,并让学生在完成具体项目的过程中学会完成相应工作任务,并构建相关理论知识,发展职业能力。课程内容突出对学生的技能训练。项目设计以学生网站设计与开发能力的培养为线索来进行。教学效果评价采取过程性评价与结果性评价相结合,重点评价学生的职业能力。 3.课程目标 通过本课程的教学,掌握WEB应用程序设计与开发的基础知识和基本技能,培养严谨务实的分析问题与解决问题能力。能胜任综合商业网站的开发工作,为就业和以后的发展奠定基础,并培养诚实、守信、坚忍不拔,善于沟通和合作的品质,为提高职业能力奠定良好的基础。 3.1知识目标 ●掌握添加文本和设置文本格式的方法 ●掌握图像和媒体在网页中的应用 ●掌握超级链接的设置方法 ●掌握表格、框架、Div对网页进行布局的方法 ●掌握CSS样式控制网页外观的方法 ●掌握使用时间轴制作动画的方法 ●掌握使用库和模板制作网页的方法

●掌握应用和修改行为的方法 ●掌握创建表单网页的方法 ●掌握用JavaScript编写脚本的方法 ●理解安装https://www.360docs.net/doc/695753904.html,应用程序运行环境; ●掌握https://www.360docs.net/doc/695753904.html,应用程序开发环境的应用; ●理解WEB窗体的概念; ●掌握WEB窗体的的代码分离技术; ●理解WEB窗体的事件驱动编程 ●了解WEB窗体的处理过程和事件; ●了解WEB窗体的文件组成; ●理解服务器控件的基本知识; ●了解服务器控件的事件模型; ●掌握在WEB窗体中添加服务器控件的方法; ●掌握标准服务器控件的语法格式、事件编程; ●理解使用用户控件的优势; ●掌握用户控件的创建和添加方法 ●了解主题的技术特点; ●掌握创建和应用主题的方法; ●了解https://www.360docs.net/doc/695753904.html,访问数据库的技术特点; ●掌握https://www.360docs.net/doc/695753904.html,中数据访问控件的使用方法 ●了解https://www.360docs.net/doc/695753904.html,应用程序用户状态; ●掌握管理https://www.360docs.net/doc/695753904.html,应用程序用户状态的方法。 3.2能力目标 ●能熟练创建本地站点并能对网页进行各种超链接 ●能对网页进行具有创意的美化 ●能对网页进行合理布局 ●能使用编程技术实现动态效果 ●能掌握网页设计与制作的相关技巧 ●能运用https://www.360docs.net/doc/695753904.html,开发工具设计、调试动态网页; ●能熟练运用WEB窗体的代码分离技术编写后台代码; ●能熟练运用WEB窗体的事件驱动编程技术开发WEB应用程序; ●能用标准WEB服务器控件制作WEB用户界面; ●能熟练运用WEB服务器控件验证用户输入的数据; ●会用https://www.360docs.net/doc/695753904.html,主题统一定制网站页面的显示格式; ●会用https://www.360docs.net/doc/695753904.html,访问数据库; ●会用https://www.360docs.net/doc/695753904.html,应用程序用户状态管理技术管理用户状态。 ●能测试和发布web应用程序。 ●能跟踪和学习并应用网页设计与制作的新知识和新技术 3.3素质目标 ●具有勤奋学习的态度,严谨求实、创新的工作作风; ●具有良好的心理素质和职业道德素质; ●具有高度责任心和良好的团队合作精神;

浅谈认知语言学

浅谈认知语言学 发表时间:2018-10-22T16:13:42.363Z 来源:《语言文字学》2018年第10月作者:封锋林聖典肖冲 [导读] 认知语言学对于语言学教学具有重大影响和意义,它体现人们对于语言的认知能力,有助于人们对语义的理解。 武警警官学院四川成都 610213 摘要:认知语言学对于语言学教学具有重大影响和意义,它体现人们对于语言的认知能力,有助于人们对语义的理解。框架语义学,作为认知语言学的重要分支,它从语境的角度解释词汇的含义,是人们理解词义的重要联系和过渡过程。然而,人们对于该理论的了解和认识并不多,关注并深入研究该理论的学者也屈指可数。本文对于框架语义学的核心思想、哲学基础、理论目标、理论方法及其在应用中的作用和影响有所探析,同时,对其所得到的评价及几点不足也有所提及。 关键词:认知语言学; 社会语言学; 社会认知语言学 1认知语言学理论概述 虽然语言普遍地只是被看作是人类之间一种交流的工具,但是其认知能力和方法尤为关键,它也是连接各类语言学之间的一个锁链。一个人的认知能力和方法,可以体现出其心理活动以及周围的环境特征。认知语言学的理论方法有很多种分支和分类,例如认知语义学、框架语义学、认知语法、构式语法等。 对于认知语言学的基本思想,乔姆斯基(Chomsky)提出了几个基本假设。其一,语言是一个自足的系统,它具有数学的特征,其自足性使其可以基本脱离范围更广的认知系统加以研究。其二,语法(尤其是句法)是语言结构的一个独立部分,与词汇和语义有着根本的区别。其三,如果意义在语法分析范围内,那么,最恰当的描述方法是通过建立在真值条件基础上的某种形式逻辑[1]。 在认知语言学中,人们对于语义的理解极其重要。正如《认知语言学杂志》(Journal of Cognitive Linguistics)在1990年首刊编者按中所述,认知语言学的研究路向将语言视为“组织、处理、传达信息的工具”,即语言最重要的是语义。所以,语言研究的认知方法主要侧重于语义。其中,框架语义学虽然并不算其分支中最热门的理论,但是,它在理解语义中的作用和影响同样不可忽视。 2框架语义学的基本理论 2.1核心思想 在人们理解词汇和句子的过程中,即在理解一个概念结构中的任何一个概念时,必须以理解它所适应的整个结构为基础,理解它所存在的概念结构,当这样一个概念结构中的一个概念被置入一个文本或交谈环境中时,该概念结构中其他所有概念都自动被激活。那么,基于对框架语义学的应用,人们在词语所激活的语义框架中理解词语的意义,并且,通过对真实场景的反复体验,人们会在大脑中形成一种意象图式[3]。因此,框架是人们在大脑中形成的一种框架概念结构,是一种相对抽象的结构[4]。 2.2哲学基础 框架语义学是由菲尔莫尔最早提出的自然语言语义学的一个具体路向[5],并以经典主义哲学及皮亚杰(J.Piaget)的楗构论为思想基础。同时,语义又是非自主的,是和经验紧密结合的,那么,语义是以经验为基础的[6]。所以,框架语义学又属于经验主义语义学(empirical semantics)的范畴,它源自经验语义学传统,而不是形式语义学(formal semantics),它与经验之间相互联系,并不代表割裂[7]。因此,框架语义学是以经典主义哲学、建构论以及经验主义为哲学基础的语言学理论思想。 2.3理论目标 框架语义学作为一种理论思想,为词义的研究提供了一种具体且便捷的方式,也为描述新词语创生、旧词添加新义,以及将语篇中各成分的意义组配成语篇整体意义的原则提供了一种有效的方法[8]。因此,框架语义学的理论目标就是在结合语境以及相关背景知识的同时,帮助人们理解词义、句义以及语篇的含义。 2.4理论方法 菲尔莫尔认为,框架语义学中的“框架”并非是在现实中的实体,而是一个概念意识上的原型,它可以充分解释真实情景与词语使用之间相互适应的复杂性,并且受到特定语境的影响[9]。因为语义会随着环境的变化而变化,那么,如果要理解一个单词的含义,就要运用联想的方法,进而掌握与这个单词有关的知识,了解与之相关的同一框架或交替框架的词汇的含义,并且熟悉其语境,理解一个框架中相互联系的概念的含义。 在借助于框架语义学理解语义的过程中,许多多义词都可适用于多个不同的框架,同样的,一种事实经常可以在不同的框架中进行阐述,一个情景可以用两种相对立的方式框定[10]。因此,语言的框架结构还应该是灵活可变的。 3框架语义学在教学中的作用及影响 框架语义学主要是描述语义和句式结构的理论,其应用主要集中在对于意义的研究,尤其是在词汇语义研究方面。例如,陈勇提出,在框架理论的指导下,词汇的同义现象应被分为框架之间的同义、同一框架内的同义这两种情况。而李春华和李勇忠则从认知功能的角度出发,以理想化的认知模型为基础,系统分析了框架转化在建构意义中的重要作用。另一方面,毛海燕以汉语框架网络知识库为基础,研究英汉词汇对比的程序和方式,构建了一个特殊的词汇语义对比模型,并且对该模型进行了一定程度的尝试性应用[11]。类似这类研究都使框架语义学对于语义理解的意义显得尤为重要,使人们对于框架语义学的理解更为深刻,也为语言学中语义语境方面的研究提供了重要的启发意义。 在阐释词汇、句法和语义现象的同时,框架语义学在编撰字典和创新语料库等方面也有所运用,同时,它还有助于第一语言习得、外语学习和外语教学。双语框架语料库可被用于课堂教学过程中,学生学习单词及其语义框架。而语义框架提供的背景知识可以提高学生学习单词及其他新知识的效率。教师则可使用语料库里的有关信息来编写练习,以弥补教学软件的不足。框架语义学作为认知语义学的一部分,是人们理解词义的过渡和桥梁,它以概念框架结构为基础,使人们在理解及表达语义的同时,对其框架中相互联系的概念、范畴及背景知识也有所了解。 4结语 认知语言学框架内的术语研究是一个全新的研究领域,这一领域已开始被冠之以专名“认知术语学”。[10]认知术语学是术语学与认知语言学相结合的产物,其中需要探讨和解决的问题还有很多。比如说,不同类型思维活动之间、某一知识领域概念的不同发展阶段之间存在

春秋福师《面向web应用程序设计》在线作业二

福师《面向web应用程序设计》在线作业二 试卷总分:100 得分:0 一、单选题 (共 25 道试题,共 50 分) 1. 语句DropDownList1.Items[0].Selected=true;的作用是()。 A. 使首项被选中 B. 测试首项是否被选中 C. 去掉首项的选中性 D. 使首项可用 满分:2 分 2. Repeater控件不能使用()种模板。 A. ItemTemplate B. HeaderTemplate C. SelectedItemTemplate D. AlternatingItemTemplate 满分:2 分 3. DataGrid控件的()属性设置是否打开分页功能。 A. AllowPaging B. AutoGenerateColumns C. CurrentPageIndex D. AlloewCustomPaging 满分:2 分 4. 验证用户输入的值在 18~60 的范围内,要使用()验证控件。 A. RegularExpressionValidatof控件 B. CompareValidator控件 C. RangeValidator控件 D. RequiredFieldValidator控件 满分:2 分 5. TreeView控件()属性指定当节点展开时的图片路径。 A. ImageUrl B. ExpandImageUrl C. SelecteImageUrl D. NavigateUrl 满分:2 分 6. 指定Label控件的边框风格,需要设置其()属性。

A. BorderColor B. BackColor C. BorderStyle D. BorderWidth 满分:2 分 7. 页面事件的生命周期顺序是:() A. Page_Load,Page_Init,Change,Click,Page_Unload B. Page_Load,Page_Init,Click,Change,Page_Unload C. Page_Init,Page_Load,Change,Click,Page_Unload D. Page_Init,Page_Load,Click,Change,Page_Unload 满分:2 分 8. DropDownList被选中项的索引号被置于()属性中。 A. SelectedIndex B. SelectedItem C. SelectedValue D. TabIndex 满分:2 分 9. 向数据源插入一条记录,需要将命令对象的CommandText属性设置为SQL语言的Insert 命令后,再调用命令对象的( )方法。 A. ExecuteNonQuery B. ExecuteReader C. ExecuteScalar D. ExecuteXmlReader() 满分:2 分 10. PageDataSource类的()属性设置或获取分页数据源每页的行数。 A. AllowPaging B. PageSize C. PageCount D. AlloewCustomPaging 满分:2 分 11. 将一个Button控件加入到DataList控件的模板中,其CommandName属性设置为"buy",当它被单击时将引发DataList控件的()事件。 A. DeleteCommand B. ItemCommand

认知语言学的语言习得观

认知语言学的语言习得观 任何语言学理论都必须回答三个基本问题(Tay - lo : 2002 : 4 ) : l )语言知识是什么?2 )语言是怎样习得的?3 )语言是怎样使用的?生成语言学和认知语言学对这些问题给出了完全不同的答案。就理论发展过程而言,这很容易理解,因为认知语言学是在生成语言学遇到一些无法解决的问题的背景下,批判性地发展起来的。本文讨论认知语言学的语言习得观,同时以生成语言学的语言习得观作为参照。 2 .认知语言学语言习得观产生的理论背景与理论基础 目前,关于语言习得的本质问题的各种争论主要集中在两种理论途径之间(Tomasello & Abbo 卜Smith 2002 ) :生成语言学的天赋论,认知功能学派的使用基础论(学得论)。前者以成人语法为出发点,后者以儿童语言自身为出发点,是在对生成语言学理论的批判过程中发展起来的。因此,二者的对立是必然的。2 . 1 理论背景:生成语言学关于以上三个问题的基本观点生成语言学认为:l )自然语言由一组统一的抽象的代数性规则组成,这些规则本身没有意义,各组成成分的意义对这些规则也没有什么影响,它是语言能力的核心部分,即普遍语法;2 )词库包含有意义的语言成分,充当规则的变体。语言能力指本族语中理想的说话者的理想的知识。这一天赋的语言能力假说具有三层意义:l )儿童语言习得速度快且不费劲,因为儿童一生下来就有完备的语言能力,他们要学的是怎样把语言能力转化为语言运用;2 )语言输入只起间接作用(诱发天赋的句法结构或设定参数); 3 )无论是儿童还是成人的语言都有创造性,因为它由抽象的语法生成。为此,生成语法学家提出了“连续性假说”,认为儿童并不需要或根本不需要学习语言的抽象结构,因为它们作为天赋的语言能力的一部分已经存在于语言器官中,即人类长有一个普遍语法。Pinker ( 1984 : 7 )指出,如果没有截然相反的证据,儿童的语法规则应该来自与成人的语法规则相同的基本规则类型,而且应该由同一类的基本符号构成。 Pinker ( 1954 , 1959 )认为,儿童习得语言由两个机制完成:l )语言中的所有词汇、习语、非常规构式等通过记忆等方式学得;2 )联结机制将正在习得的语言(指核心结构部分)与抽象的普遍语法联系起来。即语言的边缘部分由学得完成,语言的核心部分(抽象的语法规则)由天赋给定。儿童句法能力受语言行为局限性影响,这种局限性阻碍儿童天赋的语言能力的表达。核心部分既然是天赋的,就不会随学习者个体发展而变化,即所谓的“连续性,,假设(Pinker 1984 )。这就为其以成人语法来观察与描写儿童语言找到了理论依据。客观地说,生成语言学对以上问题的探索具有重要意义,为揭示语言与认知的关系提供了富有创见的发现与解释。但其两个核心假说一直是辩论的焦点:l )可学性问题(刺激贫乏假说); 2 )普遍语法与特定语言的结构联结问题(连续性假说)。下文将比较讨论。2 . 2 理论基础:认知语言学关于以上三个问题的基本观点认知语言学认为,语言的本质特征是符号性,语言构式都是有意义的语言符号。语言的基本目的之一是为交际服务。语言以使用为基础(usag 二based ) ,语法产生于语言使用。说话者说出和理解话语的认知过程反映出一般认知能力的敏锐的(acute )专业化过程。语言能力是一个结构有序的由有意义的语言构式组成的清单库。语言能力是认知能力不可分割的

STM32CubeIDE的下载安装及基本配置(超详细)

想象之中 东华理工大学长江学院 江西省抚州市 STM32CubeIDE 的下载安装及基本配置

写在前面:ARM公司的开发工具Keil一直以来都是收费的,还好有俄罗斯人做的注册机,我们学生才有机会白嫖这么久的时间使用,但是之前的注册机破解的Keil马上在2020年5月份过期了 (最新版Keil 注册机,能够注册到2032年。 直接下载:(7天有效) 注意注册机和KEIL软件得以管理员的身份运行。) 而恰好去年意法半导体公司发布了自己新的开发工具STM32CubeIDE,关键是免费的,而且对于Keil,也能减少开发时间,所以在此介绍一下STM32CubeIDE下载安装和基本配置。

STM32CubeIDE的下载 官网下载链接: https://https://www.360docs.net/doc/695753904.html,/en/development-tools/stm32cubeide.html 进入网站后可以看到下图所示的“获取软件”字样(本人将网页进行了翻译) 下载界面针对不同的OS有不同的可执行软件 我们可以选择上图所示的windows下的可执行软件进行下载,默认选择为最高版本,鼠标点击“Select version”(选择版本)按钮便可以选择要下载的其他版本 我们选择目前最高版本进行下载,鼠标点击“Get Software”(获取软件)按钮,将会弹出一个“License Agreement”(许可协议)

我们鼠标点击“ACCEPT”(接受)按钮(下滑浏览完也有“ACCEPT”(接受)按钮)将会弹出如下界面: 我们只需要填写好注册信息,勾选好相应协议,即可在邮箱里面下载安装

如果觉得麻烦,可以通过百度网盘进行下载: 链接: https://https://www.360docs.net/doc/695753904.html,/s/11GSlnyCkjsrnWW2ysoftdw提取码: qv20 鉴于百度网盘的令人头疼下载速度,我也将安装包传至如下网站,网站期限最大7天 下载链接: https://https://www.360docs.net/doc/695753904.html,/download/4d738b33a496ad3a/#6seCqWbl2_sunKnNrVqhjA STM32CubeIDE的安装 STM32CubeIDE安装指南文档下载链接: https://https://www.360docs.net/doc/695753904.html,/document/detail/index/id-219295 鼠标点击en.DM00603964即可下载。 原文档为英文文档,下载完后,打开文档,查看windows的安装教程,如下图所示 可参考原英文文档,也可按照下图指示进行安装。 注意,安装包的存放位置绝对不要出现中文,绝对,绝对,(重要的事情说三遍)否则将会出现安装失败,不清楚的人还以为安装包坏了 STM32CubeIDE安装指南文档提示我们:在安装过程中,操作系统可能会显示一个对话框,指出:“您是否要允许此应用对您的设备进行更改?” 接受([是])以继续安装。 下载完安装包,如图所示:

STM32Cube简介

STM32CubeF4 山西大学电子信息工程系王晓峰 Wangxiaofeng@https://www.360docs.net/doc/695753904.html, 特性 一致完整的嵌入式软件,免费提供 在STM32系列之间提供最大的移植性 提供上百个可以轻松理解的例程 高品质HAL代码声纳(CodeSonar?)静态分析工具 STM32F4特性中间件,包括USB主设备和从设备以及TCP/IP栈 免费的用户友好许可证条款 更新机制可以在新的版本放出时给予用户提示 描述 STM32Cube是一款由STMicroelectronics原创倡导的,可以通过减少开发负担,时间和费用使得开发者更轻松的产品。STM32Cube覆盖了整个STM32系列。 STM32Cube包括了STM32CubeF4,STM32CubeF4是一款图形化软件配置工具,允许使用图形化向导来生成C初始化代码。 同时它也集成了一个广泛的软件平台,覆盖了每个系列(例如STM32CubeF4对应STM32F4系列)。此平台包括STM32Cube HAL(一个STM32的硬件抽象层,确保STM32之间最大的可移植性),再加上配套的中间件(RTOS,USB,TCP/IP和图形)。所有嵌入式软件组件提供完整的例程。 STM32CubeF4将开发应用需要的所有类型嵌入式软件组件集成在一个包里。跟随STM32Cube的宗旨,此套组件具有高度可移植性,不仅包括STM32F4,也包括其他STM32系列。

STM32CubeF4完全兼容STM32CubeMX代码生成器,STM32CubeMX可以生成C初始化。包内包括一个底层硬件抽象层(HAL),HAL覆盖了微控制器硬件,集成了广泛的例程,可运行在意法半导体的开发板上。为了用户便利,硬件抽象层为开源BSD许可协议。 STM32CubeF4package STM32CubeF4包含了一套中间件组件,带有对应的例程。它们具有非常自由的许可证条款: 1、CMSIS-RTOS贯彻了FreeRTOS的开源解决方案 2、TCP/IP协议栈基于开源的LwIP解决方案 3、FAT文件系统基于开源的FatFs解决方案,支持NAND闪存访问 4、STemWin,一个专业的图形栈解决方案,提供二进制格式支持,并且基于我们伙伴的SEGGER emWin。 5、完整的USB主从设备协议栈支持。 STM32CubeF4包内提供所有这些中间件的实现示例。 STM32CubeF4包括在STM32Cube包内。请注意STM32Cube将逐步完善并覆盖STM32系列。 订购信息 STM32CubeF4可在意法半导体官网免费下载。 版本历史 2014-2-14第一版

2016年自考网络应用程序设计题库答案

一、选择题 (1)UDP可以提供的端口数是65535 (2)根据TCP或UDP端口的分配规则,端口254保留给特定的服务 (3)保留给其他服务的端口是256 (4)在Internet中,用三元组标识一个应用层进程。这种三元组,指的是传输层协议,主机的IP地址,传输层的端口号 (5)在Internet中,可以标识一个完整的网间通信的是传输层协议,本地机IP地址,本地机传输层端口,远地机IP地址,远地机传输层端口 (6)规定纯文本电子邮件信件的格式的是RFC822 (7)接收电子邮件的邮局协议是POP3 (8)因特网上使用最多的一种应用是email (9)SMTP命令的一般的格式命令关键字参数 (10)SMTP客户问候SMTP服务器命令格式是HELO 发送方的主机名 (11)写信字段的格式是MAIL FROM:发信人的电子邮件地址 (12)请求发送邮件内容命令格式:DATA (13)空操作命令格式:NOOP (14)系统状态或系统帮助应答码字是211 (15)帮助信息的码字是214 (16)服务器关闭传输通道码字是221 (17)网易的SMTP服务器的域名是https://www.360docs.net/doc/695753904.html, (18)规定电子邮件信件内容结构的标准是RFC822 (19)信头字段包括四部分,第一部分是字段名 (20)信头字段的结构包括字段折叠 (21)发送者对发送的发送格式是Sender:mailbox (22)Win32操作系统下支持多进程多线程机制 (23)阻塞套接字的I/O操作调用、等待、返回 (24)套接字I/O模型,种类数是 5 (25)不是图形界面的操作系统有DOS (26)一般C程序中的Main或WinMain函数是主线程 (27)Win32操作系统中可调度的最小的执行单位线程 (28)为程序员提供了Windows应用程序的集成开发环境的是vc++ (29)线程分的种类数是 2 (30)在MFC应用程序中,所有的线程是CWinThread对象 (31)适用于处理那些不要求用户输入并且比较消耗时间的其他任务的是工作线程 (32)一个工作线程对应一个控制函数 (33)创建并启动工作线程的函数AfxBeginThread (34)用户界面窗口类,包括窗口,对话框 (35)AfxBeginThread()函数的第一个参数是pThreadClass (36)Windows Internet扩展应用程序高级编程接口WInternet (37)利用MFC WinInet类来编写Internet应用程序还具的优点支持Web代理服务器访问 (38)封装了HINTERNET会话根句柄的是CInternetSession类

认知语言学的几大理论 [文化语言学视角下的“小清新”]

摘要语言不仅是种自然现象,更是种文化现象。不断发展的现代物质文明造就了语言范式的极大改变,新兴语言现象层出不穷。本文通过对当下流行的“小清新”的用词、体式、意象等方面的调查分析,尝试着从文化语言学的角度对其进行探讨,并力图从语言学层面透析其反映的文化心理。 关键词小清新;文化心理;文化语言学 何谓小清新? 曾几何时,“小清新”还只是指一份单纯的宁静美好景象。然而,不断发展的现代物质文明在重塑群体精神文化的同时,也造就了语言范式的极大改变,使得“小清新”也已不单是感官上的清新、静美之代名词。 现今所谓“小清新”是从都市和网络亚文化中衍生出来的,代表的是一种审美趣味,一种生活态度。小清新是指喜爱阳光、雨露、蓝天与白云,追求淡雅、自然、朴实与静谧,想象着在精神世界中自我陶醉的一群受众。作为形而上的意识理念总是需要有一个出口来表达情感,释放自我。于是,无论是在电影、小说、音乐还是话语方式,抑或生活情态中我们都可以清晰地找寻到他们的痕迹电影中有“老清新”鼻祖宫崎骏的纯真动漫系列;小说有充满“萌点”的《牧羊少年奇幻之旅》《关于莉莉周的一切》;音乐中亦有干净清澈,低鸣浅唱的小众音乐风与之相衬;时尚教母Lady GaGa总以“出现都要放倒一片”的夸张姿态示人,但同样也有仿佛洁净到不染尘埃的一众人群在执着着棉布裙、海魂衫、帆布鞋。

通过不同形态的文化范式,小清新们多元地向大众显露着他们的追求。语言,作为社会生活的一面镜子反映着“现实世界”。英国语言学家约翰·莱昂斯曾说“特定社会的语言是这个社会文化的组成部分,每一种语言在词语上的差异都会反映使用这种语言的社会事物、习俗以及各种活动在文化方面的重要特征。”不同范式反应的文化心理,都需要通过语言来寻求出口。小清新作为一种新的潮流文化现象,同样也在用语言来塑造他们的文化价值,播撒着他与众不同的温情与文艺的情怀。 关键词——雅致 索绪尔认为,汉语属于“超等词汇的典型”,词汇在汉语中的地位十分突出。词汇本身就是一个文化成果,每一个词都是对客观事物认识、概括,即思维的结果,词汇反应了话语人的心理情态。 语汇是有情调的。就像人说“屁股”是粗俗的,“臀部”像医学术语,如果你说“臀”就稍微有了些调感,而用“人体腰部以下的后侧位置”,那么就显得准确又雅致了。 小清新的话语构成,就是一系列清新标签的集合。小清新们最擅长用淡漠而不失雅致的词藻来描绘其生活的小世界,其语言仿佛缺乏一种现实细节,却是乐于构筑内心世界的自我感知。事实上,用来构筑小清新话语的词应该有两类一种

STM32CubeMX使用说明

STM32CubeMX使用说明 黄盈鑫 目录 安装软件 (1) 安装固件包 (4) 创建一个简单的工程 (8) 安装软件 ●到ST的网站上下载最新版本的STM32CubeMX软件: https://www.360docs.net/doc/695753904.html,/content/st_com/en/products/development-tools/software-development-too ls/stm32-software-development-tools/stm32-configurators-and-code-generators/stm32cubemx. html ●编写这份文档的时候最新版本是V4.17.0将下载后的压缩包解压,双击里面的 SetupSTM32CubeMX-4.17.0.exe文件来安装软件,出现下图的界面的时候按Next按钮继续: ●在下面的窗口中选择“I accept the terms of this license agreement”然后继续按Next按 钮。

●下一个出现的窗口是选择软件安装的路径,默认安装路径是C:\Program Files (x86)\STMicroelectronics\STM32Cube\STM32CubeMX,可以根据实际需要选择别的路径,本次安装在D盘相同的路径上。 ●按Next按钮后弹出一个确认窗口,按确定键确定。 ●接着弹出下图的配置窗口,按原来默认的配置,按Next键继续。

●安装完后,按Next键继续。 ●按Done键关闭下面的窗口,完成所有的安装。

安装固件包 ●点击桌面上的STM32CubeMX图标运行软件。 ●先修改软件包的安装路径,点击help菜单选“Updater Settings”选项。 ●软件包默认安装在C:/Users/XIN/STM32Cube/Repository/目录下,STM32Cube软件包比较 大可以点击Browse按键修改安装的路径。 ●修改完软件包的安装路径后开始安装STM32Cube软件包,点击help菜单选“Install new software and/or firmware packages”选项。

自考网络应用程序设计题库答案

自考网络应用程序设计题库答案

一、选择题 (1)UDP能够提供的端口数是65535 (2)根据TCP或UDP端口的分配规则,端口254 保留给特定的服务 (3)保留给其它服务的端口是256 (4)在Internet中,用三元组标识一个应用层进程。这种三元组,指的是传输层协议,主机的IP地址,传输层的端口号 (5)在Internet中,能够标识一个完整的网间通信的是传输层协议,本地机IP 地址,本地机传输层端口,远地机IP地址,远地机传输层端口 (6)规定纯文本电子邮件信件的格式的是RFC822 (7)接收电子邮件的邮局协议是POP3 (8)因特网上使用最多的一种应用是email (9)SMTP命令的一般的格式命令关键字参数 (10)SMTP客户问候SMTP服务器命令格式是HELO 发送方的主机名(11)写信字段的格式是MAIL FROM:发信人的电子邮件地址 (12)请求发送邮件内容命令格式:DATA (13)空操作命令格式:NOOP (14)系统状态或系统帮助应答码字是211 (15)帮助信息的码字是214 (16)服务器关闭传输通道码字是221 (17)网易的SMTP服务器的域名是https://www.360docs.net/doc/695753904.html, (18)规定电子邮件信件内容结构的标准是RFC822 (19)信头字段包括四部分,第一部分是字段名 (20)信头字段的结构包括字段折叠 (21)发送者对发送的发送格式是Sender:mailbox (22)Win32操作系统下支持多进程多线程机制 (23)阻塞套接字的I/O操作调用、等待、返回 (24)套接字I/O模型,种类数是5 (25)不是图形界面的操作系统有DOS (26)一般C程序中的Main或WinMain函数是主线程 (27)Win32操作系统中可调度的最小的执行单位线程 (28)为程序员提供了Windows应用程序的集成开发环境的是vc++ (29)线程分的种类数是2 (30)在MFC应用程序中,所有的线程是CWinThread对象 (31)适用于处理那些不要求用户输入而且比较消耗时间的其它任务的是工作线程 (32)一个工作线程对应一个控制函数 (33)创立并启动工作线程的函数AfxBeginThread (34)用户界面窗口类,包括窗口,对话框 (35)AfxBeginThread()函数的第一个参数是pThreadClass (36)Windows Internet扩展应用程序高级编程接口WInternet (37)利用MFC WinInet类来编写Internet应用程序还具的优点支持Web代理服务器访问 (38)封装了HINTERNET会话根句柄的是CInternetSession类

相关文档
最新文档