hi,大家好,今天爲大家解析一下,MQX系統中flash的操作。
我們在用戶層經過特有平臺(每個公司基於MQX的封裝)的封裝,我們都會調用到open,read,write的接口,但是這種接口怎麼經過內核把驅動連接起來,實現基本讀寫操作,即寄存器的操作。如下是一下接口。
fopen -> _io_fopen -> (kernel_data)dev_ptr->IO_OPEN -> _io_flashx_open -> (fd_ptr)dev_ptr
write -> _io_write -> (kernel_data -> MQX_FILE_PTR file_ptr)dev_ptr->IO_WRITE -> drvif_ptr->IO_WRITE -> _io_flashx_write -> fd_ptr->DEV_PTR->DRIVER_INIT_PTR -> ftfe_flash_write_sector_pa_ram(_bsp_flashx_init -> _flashx_ftfe_if)
如下是一個流程草圖,方便理解。
最後到了通過這個_flashx_ftfe_if下面的接口,實現對寄存器的操作,寄存器的地址是在open的時候調用接口_io_flashx_open獲取的。
更多的相關知識,請移步個人博客:http://www.jh-tec.cn/