UCOS是Micrium公司出品的RTOS类实时操作系统,UCOS目前有两个版本:UCOSII和UCOSIII。 UCOSIII是一个可裁剪、可剥夺型的多任务内核,而且没有任务数限制。UCOSIII提供了实时操作系统所需的所有功能,包括资源管理、同步、任务通信等。 SD卡是由松下电器、东芝和SanDisk联合推出,1999年8月发布。SD卡的数据传送和物理规范由MMC发展而来,大小和MMC卡差不多,尺寸为32mm x 24mm x 2.1mm。长宽和MMC卡一样,只是比MMC卡厚了0.7mm,以容纳更大容量的存贮单元。S与 MMC 卡保持着向上的兼容,MMC卡可以被新的SD设备存取,兼容性则取决于应用软件,但SD卡却不可以被MMC设备存取。(SD卡外型采用了与MMC卡厚度一样的导轨式设计。 SD卡接口除了保留MMC卡的7针外,还在两边加多了2针,作为数据线。 在 SD 卡 3.0 规范中,SD 卡的理论最大容量可达 2TB,理论最大读写速度可达 104MB/s(在最新的 4.10 规范中,理论最大读写速度已提高到 312MB/s)。[2] SD卡主要分为四部分组成:外部引脚、内部寄存器、接口控制器和内部存储介质。SD 卡(1)主要引脚和功能描述如下: CLK:时钟信号,控制器或者 SD 卡在每个时钟周期传输一个命令位或数据位,在 SD 总线的默认速度模式下频率可在0~25MHz 之间变化,SD 卡的总线管理器可以不受任何限制的自由产生0~25MHz 的频率,在 UHS-I 速度模式下,时钟频率最高可达208M。[2] CMD:命令和响应复用引脚,命令是由控制器发给 SD 卡,可以是从控制器到单个 SD 卡,也可以是到 SD 总线上所有卡;响应是存储卡对控制器发送的命令应答,应答可以来自单卡或所有卡。 DAT0~3:数据线,数据可以从卡传向控制器也可以从控制器传向卡。 SD2.0的规范中对SD卡的速度分级方法是:普通卡和高速卡的速率定义为Class2、Class4、Class6 和Class 10 四个等级。在Class10卡问世之前,存在过一阵Class11和Class13的卡,但这种标准最终没有被SDA共识。 SD3.01规范被称为超高速卡,速率定义为UHS-I和UHS-II。到2013年第二季度为止,已上市的只有UHS-I卡。UHS-II在2012年第4季度发布,但就2014年前的技术发展速度来看,UHS-I完全足够度过2014年甚至更久。UHS-I卡的速度等级分为UHS-Class0和UHS-Class1。UHS-I的Class和SD2.0的Class不同,没有明确的Class0卡,字面含义就是达不到Class1的卡。可能未来老Class标准的都会被归纳为Class0吧。Class1代表的是最大读取104MB/s,而SD2.0标准里的Class代表的是写入最小的速度范围。 开发步骤: 1:由于我们的 uC/OS-III 是使用第三方软件库,这个库要求有 2 个 AXI timer,硬件系统中必须添加这样的两个 IP。开启中断和 zynq 的中断系统相连。整个硬件系统图如下: 2:在 SDK 下点击 Xilinx Tools -> Repositories,添加UCOS的ZYNQ库文件 3:新建工程,选择ucos File 4:在BSP中选择SD 0 测试结果如下: 要先格式化SD为FAT32 |
扫描关注,了解最新资讯