近日忙完 ARM-S3C6410 ARM11 的 Bootloader( UBoot ) & OS & Root Filesystem 的移植,及相關 ARM-S3C6410 教學開發板驅動的撰寫。 利用空閒時間 再來實作 MCS-8051 上的 FAT File System ,可用於 SDC/MMC 週邊,利用 SDC/MMC 存儲 大容量的圖片/音樂檔(mp3)的特性,加大 MCS-8051 的容量。
上面的實作技術,在現今業界尚大量使用 MCS-8051 BASE 來做控制,是可以再對 MCS-8051 的應用面加強,我目前採用 FatFs Generic File System Module 來移植到 MCS-8051 。目前 會將 MCS-8051/彩色 LCD 液晶顯示器 解析度 128x128 SCTN 65K色 程式實作( 網址:http://tw.myblog.yahoo.com/yh-chiang/article?mid=977&prev=979&next=966 ) 的圖片改存在 SDC/MMC 上,MCS-8051 再將其讀出 Show 在 LCD 上。
如 FatFs Generic File System Module 的前言所說:FatFs is a generic FAT file system module for small embedded systems. The FatFs is written in compliance with ANSI C and completely separated from the disk I/O layer. Therefore it is independent of hardware architecture. It can be incorporated into low cost microcontrollers, such as AVR, 8051, PIC, ARM, Z80, 68k and etc...。
其架構如下圖:
如上圖所示:FatFs Module 介於 Application 與 Low level disk I/O及RTC 之間,它是一種 Meta 層協定,不牽涉到硬體的控制與Access,比較容易移植。但現在要將其移植到 MCS-8051 上,尚必須完成專屬MCS-8051的 Low level disk I/O及RTC 的移植,這一部份,我在 MCS-8051 開發板上是利用 SD/MMC 裝置, 當然 您也可可以移植到 CF 卡,又或者 您使用的 MCS-8051 開發板的ROM記憶體夠大的話,說不定連 如 DOM 裝置也可以移植成功。
有關在 MCS-8051 開發板上移植適合的 FatFs Module 的 Low level disk I/O及RTC ,因為比較複雜,所以這部份我將在課堂上講解。
而當您成功移植 FatFs Module 與 Low level disk I/O及RTC 到 MCS-8051 開發板上時,您就可以撰寫適當的 Application ,由 MCS-8051 開發板讀寫 SD/MMC 裝置上的卡。這裡我貼上一段 Application CODE 供各位分享。
#include <MCS8051.h>
FATFS fs;
FIL F;
const char filename[] = "test51.txt";
const char dataBuf[] = "Hello CYH^^";
unsigned char i;
volatile FRESULT resV;
UINT bytesWritten;
UINT bytesRead;
unsigned char buf_read[64];
int main( void )
{
init51();
f_mount(0, &fs);
f_open (&F, filename, FA_READ | FA_WRITE | FA_CREATE_ALWAYS);
f_write (&F, buf1, sizeof (buf1) - 1, &bytesWritten);
f_lseek (&F, 0 );
f_read( &F, buf_read, bytesWritten, &bytesRead);
buf_read[bytesRead] = 0; // 可以使用 Debug Mode 觀察 buf_read, 是否讀寫 SD 成功?
f_close (&F);
f_mount(0, NULL);
while( 1 );
return 0;
}
沒有留言:
張貼留言