#include "conf/conf_access.h"#include "ctrl_status.h"#include "lib_mem\virtual_mem\virtual_mem.h"#include "lib_mem\nf\nf_mngt.h"#include "lib_mem\df\df_mem.h"#include "lib_mem\mmc_sd\mmc_sd_mem.h"#include <LUN_4_INCLUDE>#include <LUN_5_INCLUDE>#include <LUN_6_INCLUDE>#include <LUN_7_INCLUDE>#include "lib_mem\host_mem\host_mem.h"
Go to the source code of this file.
Defines | |
| #define | ACCESS_MEM_TO_RAM DISABLE |
| #define | LUN_0 DISABLE |
| #define | LUN_1 DISABLE |
| #define | LUN_2 DISABLE |
| #define | LUN_3 DISABLE |
| #define | LUN_4 DISABLE |
| #define | LUN_5 DISABLE |
| #define | LUN_6 DISABLE |
| #define | LUN_7 DISABLE |
| #define | LUN_USB DISABLE |
| #define | LUN_ID_VIRTUAL LUN_ID_0 |
| #define | LUN_0_INCLUDE "lib_mem\virtual_mem\virtual_mem.h" |
| #define | Lun_0_test_unit_ready() virtual_test_unit_ready() |
| #define | Lun_0_read_capacity(nb_sect) virtual_read_capacity(nb_sect) |
| #define | Lun_0_wr_protect() virtual_wr_protect() |
| #define | Lun_0_removal() virtual_removal() |
| #define | Lun_0_read_10(ad, sec) virtual_read_10(ad, sec) |
| #define | Lun_0_write_10(ad, sec) virtual_write_10(ad, sec) |
| #define | Lun_0_ram_2_mem(addr, ram) virtual_ram_2_mem(addr, ram) |
| #define | Lun_0_mem_2_ram(addr, ram) virtual_mem_2_ram(addr, ram) |
| #define | LUN_0_NAME "VIRTUAL_MEM_ON_CHIP" |
| #define | LUN_ID_NF LUN_ID_1 |
| #define | LUN_1_INCLUDE "lib_mem\nf\nf_mngt.h" |
| #define | Lun_1_test_unit_ready() nf_test_unit_ready() |
| #define | Lun_1_read_capacity(nb_sect) nf_read_capacity(nb_sect) |
| #define | Lun_1_wr_protect() nf_wr_protect() |
| #define | Lun_1_removal() nf_removal() |
| #define | Lun_1_read_10(ad, sec) nf_read_10(ad, sec) |
| #define | Lun_1_write_10(ad, sec) nf_write_10(ad, sec) |
| #define | Lun_1_ram_2_mem(addr, ram) nf_ram_2_nf(addr, ram) |
| #define | Lun_1_mem_2_ram(addr, ram) nf_nf_2_ram(addr, ram) |
| #define | LUN_1_NAME "\"NAND Flash\"" |
| #define | LUN_ID_DF LUN_ID_2 |
| #define | LUN_2_INCLUDE "lib_mem\df\df_mem.h" |
| #define | Lun_2_test_unit_ready() df_test_unit_ready() |
| #define | Lun_2_read_capacity(nb_sect) df_read_capacity(nb_sect) |
| #define | Lun_2_wr_protect() df_wr_protect() |
| #define | Lun_2_removal() df_removal() |
| #define | Lun_2_read_10(ad, sec) df_read_10(ad, sec) |
| #define | Lun_2_write_10(ad, sec) df_write_10(ad, sec) |
| #define | Lun_2_ram_2_mem(addr, ram) df_ram_2_df(addr, ram) |
| #define | Lun_2_mem_2_ram(addr, ram) df_df_2_ram(addr, ram) |
| #define | LUN_2_NAME "\"On board data flash\"" |
| #define | LUN_ID_MMC_SD LUN_ID_3 |
| #define | LUN_3_INCLUDE "lib_mem\mmc_sd\mmc_sd_mem.h" |
| #define | Lun_3_test_unit_ready() mmc_sd_test_unit_ready() |
| #define | Lun_3_read_capacity(nb_sect) mmc_sd_read_capacity(nb_sect) |
| #define | Lun_3_wr_protect() mmc_sd_wr_protect() |
| #define | Lun_3_removal() mmc_sd_removal() |
| #define | Lun_3_read_10(ad, sec) mmc_sd_read_10(ad, sec) |
| #define | Lun_3_write_10(ad, sec) mmc_sd_write_10(ad, sec) |
| #define | Lun_3_ram_2_mem(addr, ram) mmc_ram_2_mmc(addr, ram) |
| #define | Lun_3_mem_2_ram(addr, ram) mmc_mmc_2_ram(addr, ram) |
| #define | LUN_3_NAME "\"MMC\"" |
| #define | LUN_USB_INCLUDE "lib_mem\host_mem\host_mem.h" |
| #define | Lun_usb_get_lun() host_mem_get_lun() |
| #define | Lun_usb_test_unit_ready(lun) host_mem_test_unit_ready(lun) |
| #define | Lun_usb_read_capacity(lun, nb_sect) host_mem_read_capacity(lun,nb_sect) |
| #define | Lun_usb_read_sector_size(lun) host_mem_read_sector_size(lun) |
| #define | Lun_usb_wr_protect(lun) host_mem_wr_protect_cache(lun) |
| #define | Lun_usb_removal() host_mem_removal() |
| #define | Lun_usb_ram_2_mem(lun, addr, ram) host_mem_ram_2_mem(lun,addr,ram) |
| #define | Lun_usb_mem_2_ram(lun, addr, ram) host_mem_mem_2_ram(lun,addr,ram) |
| #define | LUN_USB_NAME "\"USB Remote memory\"" |
| #define | ID_STREAM_ERR 0xFF |
Functions | |
| U8 | get_nb_lun () |
| This function return the number of logical unit. | |
| U8 | get_cur_lun () |
| This function return the current logical unit. | |
| Ctrl_status | mem_test_unit_ready (U8 lun) |
| This function test the state of memory, and start the initialisation of the memory. | |
| Ctrl_status | mem_read_capacity (U8 lun, U32 _MEM_TYPE_SLOW_ *u32_nb_sector) |
| This function return the capacity of the memory. | |
| U8 | mem_sector_size (U8 lun) |
| This function return the sector size of the memory. | |
| Bool | mem_wr_protect (U8 lun) |
| This function return is the write protected mode. | |
| Bool | mem_removal (U8 lun) |
| This function inform about the memory type. | |
| U8 code * | mem_name (U8 lun) |
| This function returns a pointer to the LUN name. | |
| Ctrl_status | memory_2_usb (U8 lun, U32 addr, U16 nb_sector) |
| This function tranfer a data from memory to usb. | |
| Ctrl_status | usb_2_memory (U8 lun, U32 addr, U16 nb_sector) |
| This function transfer a data from usb to memory. | |
| Ctrl_status | memory_2_ram (U8 lun, const U32 _MEM_TYPE_SLOW_ addr, U8 _MEM_TYPE_SLOW_ *ram) |
| Interface for RAM. | |
| Ctrl_status | ram_2_memory (U8 lun, const U32 _MEM_TYPE_SLOW_ addr, U8 _MEM_TYPE_SLOW_ *ram) |
| This function transfer a data from ram to memory. | |
| U8 | stream_mem_to_mem (U8 src_lun, U32 src_addr, U8 dest_lun, U32 dest_addr, U16 nb_sector) |
| This function copy a data from memory to other memory. | |
| Ctrl_status | stream_state (U8 Id) |
| Returns the state on a data transfer. | |
| U16 | stream_stop (U8 Id) |
| Stop the data transfer. | |
Definition in file ctrl_access.h.
| #define ACCESS_MEM_TO_RAM DISABLE |
Definition at line 52 of file ctrl_access.h.
| #define LUN_0 DISABLE |
Definition at line 57 of file ctrl_access.h.
| #define LUN_1 DISABLE |
Definition at line 60 of file ctrl_access.h.
| #define LUN_2 DISABLE |
Definition at line 63 of file ctrl_access.h.
| #define LUN_3 DISABLE |
Definition at line 66 of file ctrl_access.h.
| #define LUN_4 DISABLE |
Definition at line 69 of file ctrl_access.h.
| #define LUN_5 DISABLE |
Definition at line 72 of file ctrl_access.h.
| #define LUN_6 DISABLE |
Definition at line 75 of file ctrl_access.h.
| #define LUN_7 DISABLE |
Definition at line 78 of file ctrl_access.h.
| #define LUN_USB DISABLE |
Definition at line 81 of file ctrl_access.h.
| #define LUN_ID_VIRTUAL LUN_ID_0 |
Definition at line 85 of file ctrl_access.h.
| #define LUN_0_INCLUDE "lib_mem\virtual_mem\virtual_mem.h" |
Definition at line 86 of file ctrl_access.h.
| #define Lun_0_test_unit_ready | ( | ) | virtual_test_unit_ready() |
| #define Lun_0_read_capacity | ( | nb_sect | ) | virtual_read_capacity(nb_sect) |
| #define Lun_0_wr_protect | ( | ) | virtual_wr_protect() |
| #define Lun_0_removal | ( | ) | virtual_removal() |
| #define Lun_0_read_10 | ( | ad, | |||
| sec | ) | virtual_read_10(ad, sec) |
| #define Lun_0_write_10 | ( | ad, | |||
| sec | ) | virtual_write_10(ad, sec) |
| #define Lun_0_ram_2_mem | ( | addr, | |||
| ram | ) | virtual_ram_2_mem(addr, ram) |
| #define Lun_0_mem_2_ram | ( | addr, | |||
| ram | ) | virtual_mem_2_ram(addr, ram) |
| #define LUN_0_NAME "VIRTUAL_MEM_ON_CHIP" |
Definition at line 95 of file ctrl_access.h.
| #define LUN_ID_NF LUN_ID_1 |
Definition at line 98 of file ctrl_access.h.
| #define LUN_1_INCLUDE "lib_mem\nf\nf_mngt.h" |
Definition at line 99 of file ctrl_access.h.
| #define Lun_1_test_unit_ready | ( | ) | nf_test_unit_ready() |
| #define Lun_1_read_capacity | ( | nb_sect | ) | nf_read_capacity(nb_sect) |
| #define Lun_1_wr_protect | ( | ) | nf_wr_protect() |
| #define Lun_1_removal | ( | ) | nf_removal() |
| #define Lun_1_read_10 | ( | ad, | |||
| sec | ) | nf_read_10(ad, sec) |
| #define Lun_1_write_10 | ( | ad, | |||
| sec | ) | nf_write_10(ad, sec) |
| #define Lun_1_ram_2_mem | ( | addr, | |||
| ram | ) | nf_ram_2_nf(addr, ram) |
| #define Lun_1_mem_2_ram | ( | addr, | |||
| ram | ) | nf_nf_2_ram(addr, ram) |
| #define LUN_1_NAME "\"NAND Flash\"" |
Definition at line 108 of file ctrl_access.h.
| #define LUN_ID_DF LUN_ID_2 |
Definition at line 111 of file ctrl_access.h.
| #define LUN_2_INCLUDE "lib_mem\df\df_mem.h" |
Definition at line 112 of file ctrl_access.h.
| #define Lun_2_test_unit_ready | ( | ) | df_test_unit_ready() |
| #define Lun_2_read_capacity | ( | nb_sect | ) | df_read_capacity(nb_sect) |
| #define Lun_2_wr_protect | ( | ) | df_wr_protect() |
| #define Lun_2_removal | ( | ) | df_removal() |
| #define Lun_2_read_10 | ( | ad, | |||
| sec | ) | df_read_10(ad, sec) |
| #define Lun_2_write_10 | ( | ad, | |||
| sec | ) | df_write_10(ad, sec) |
| #define Lun_2_ram_2_mem | ( | addr, | |||
| ram | ) | df_ram_2_df(addr, ram) |
| #define Lun_2_mem_2_ram | ( | addr, | |||
| ram | ) | df_df_2_ram(addr, ram) |
| #define LUN_2_NAME "\"On board data flash\"" |
Definition at line 121 of file ctrl_access.h.
| #define LUN_ID_MMC_SD LUN_ID_3 |
Definition at line 124 of file ctrl_access.h.
| #define LUN_3_INCLUDE "lib_mem\mmc_sd\mmc_sd_mem.h" |
Definition at line 125 of file ctrl_access.h.
| #define Lun_3_test_unit_ready | ( | ) | mmc_sd_test_unit_ready() |
| #define Lun_3_read_capacity | ( | nb_sect | ) | mmc_sd_read_capacity(nb_sect) |
| #define Lun_3_wr_protect | ( | ) | mmc_sd_wr_protect() |
| #define Lun_3_removal | ( | ) | mmc_sd_removal() |
| #define Lun_3_read_10 | ( | ad, | |||
| sec | ) | mmc_sd_read_10(ad, sec) |
| #define Lun_3_write_10 | ( | ad, | |||
| sec | ) | mmc_sd_write_10(ad, sec) |
| #define Lun_3_ram_2_mem | ( | addr, | |||
| ram | ) | mmc_ram_2_mmc(addr, ram) |
| #define Lun_3_mem_2_ram | ( | addr, | |||
| ram | ) | mmc_mmc_2_ram(addr, ram) |
| #define LUN_3_NAME "\"MMC\"" |
Definition at line 134 of file ctrl_access.h.
| #define LUN_USB_INCLUDE "lib_mem\host_mem\host_mem.h" |
Definition at line 137 of file ctrl_access.h.
| #define Lun_usb_get_lun | ( | ) | host_mem_get_lun() |
| #define Lun_usb_test_unit_ready | ( | lun | ) | host_mem_test_unit_ready(lun) |
| #define Lun_usb_read_capacity | ( | lun, | |||
| nb_sect | ) | host_mem_read_capacity(lun,nb_sect) |
| #define Lun_usb_read_sector_size | ( | lun | ) | host_mem_read_sector_size(lun) |
| #define Lun_usb_wr_protect | ( | lun | ) | host_mem_wr_protect_cache(lun) |
| #define Lun_usb_removal | ( | ) | host_mem_removal() |
| #define Lun_usb_ram_2_mem | ( | lun, | |||
| addr, | |||||
| ram | ) | host_mem_ram_2_mem(lun,addr,ram) |
| #define Lun_usb_mem_2_ram | ( | lun, | |||
| addr, | |||||
| ram | ) | host_mem_mem_2_ram(lun,addr,ram) |
| #define LUN_USB_NAME "\"USB Remote memory\"" |
Definition at line 146 of file ctrl_access.h.
| #define ID_STREAM_ERR 0xFF |
Definition at line 204 of file ctrl_access.h.
Referenced by stream_mem_to_mem(), and ushell_cmd_perform_transfer().
| U8 get_nb_lun | ( | ) |
This function return the number of logical unit.
Definition at line 172 of file ctrl_access.c.
References Lun_usb_get_lun, and MAX_LUN.
00173 { 00174 #if (LUN_USB == ENABLED) 00175 return (MAX_LUN + Lun_usb_get_lun()); 00176 #else 00177 return MAX_LUN; 00178 #endif 00179 }
| U8 get_cur_lun | ( | ) |
This function return the current logical unit.
Definition at line 186 of file ctrl_access.c.
| Ctrl_status mem_test_unit_ready | ( | U8 | lun | ) |
This function test the state of memory, and start the initialisation of the memory.
MORE (see SPC-3 §5.2.4) : The TEST UNIT READY command allows an application client to poll a logical unit until it is ready without the need to allocate space for returned data. The TEST UNIT READY command may be used to check the media status of logical units with removable media.
| lun | Logical unit number |
Definition at line 205 of file ctrl_access.c.
References CTRL_FAIL, Lun_0_test_unit_ready, Lun_1_test_unit_ready, Lun_2_test_unit_ready, Lun_3_test_unit_ready, LUN_ID_0, LUN_ID_1, LUN_ID_2, LUN_ID_3, LUN_ID_4, LUN_ID_5, LUN_ID_6, LUN_ID_7, LUN_ID_USB, and Lun_usb_test_unit_ready.
00206 { 00207 switch( lun ) 00208 { 00209 # if (LUN_0 == ENABLE) 00210 case LUN_ID_0: 00211 return Lun_0_test_unit_ready(); 00212 break; 00213 # endif 00214 # if (LUN_1 == ENABLE) 00215 case LUN_ID_1: 00216 return Lun_1_test_unit_ready(); 00217 break; 00218 # endif 00219 # if (LUN_2 == ENABLE) 00220 case LUN_ID_2: 00221 return Lun_2_test_unit_ready(); 00222 break; 00223 # endif 00224 # if (LUN_3 == ENABLE) 00225 case LUN_ID_3: 00226 return Lun_3_test_unit_ready(); 00227 break; 00228 # endif 00229 # if (LUN_4 == ENABLE) 00230 case LUN_ID_4: 00231 return Lun_4_test_unit_ready(); 00232 break; 00233 # endif 00234 # if (LUN_5 == ENABLE) 00235 case LUN_ID_5: 00236 return Lun_5_test_unit_ready(); 00237 break; 00238 # endif 00239 # if (LUN_6 == ENABLE) 00240 case LUN_ID_6: 00241 return Lun_6_test_unit_ready(); 00242 break; 00243 # endif 00244 # if (LUN_7 == ENABLE) 00245 case LUN_ID_7: 00246 return Lun_7_test_unit_ready(); 00247 break; 00248 # endif 00249 # if (LUN_USB == ENABLE) 00250 default: 00251 return Lun_usb_test_unit_ready(lun - LUN_ID_USB); 00252 break; 00253 # endif 00254 } 00255 return CTRL_FAIL; 00256 }
| Ctrl_status mem_read_capacity | ( | U8 | lun, | |
| U32 _MEM_TYPE_SLOW_ * | u32_last_sector | |||
| ) |
This function return the capacity of the memory.
| lun | Logical unit number |
Ctrl_status It is ready -> CTRL_GOOD Memory unplug -> CTRL_NO_PRESENT
Definition at line 268 of file ctrl_access.c.
References CTRL_FAIL, Lun_0_read_capacity, Lun_1_read_capacity, Lun_2_read_capacity, Lun_3_read_capacity, LUN_ID_0, LUN_ID_1, LUN_ID_2, LUN_ID_3, LUN_ID_4, LUN_ID_5, LUN_ID_6, LUN_ID_7, LUN_ID_USB, and Lun_usb_read_capacity.
00269 { 00270 switch( lun ) 00271 { 00272 # if (LUN_0 == ENABLE) 00273 case LUN_ID_0: 00274 return Lun_0_read_capacity( u32_last_sector ); 00275 break; 00276 # endif 00277 # if (LUN_1 == ENABLE) 00278 case LUN_ID_1: 00279 return Lun_1_read_capacity( u32_last_sector ); 00280 break; 00281 # endif 00282 # if (LUN_2 == ENABLE) 00283 case LUN_ID_2: 00284 return Lun_2_read_capacity( u32_last_sector ); 00285 break; 00286 # endif 00287 # if (LUN_3 == ENABLE) 00288 case LUN_ID_3: 00289 return Lun_3_read_capacity( u32_last_sector ); 00290 break; 00291 # endif 00292 # if (LUN_4 == ENABLE) 00293 case LUN_ID_4: 00294 return Lun_4_read_capacity( u32_last_sector ); 00295 break; 00296 # endif 00297 # if (LUN_5 == ENABLE) 00298 case LUN_ID_5: 00299 return Lun_5_read_capacity( u32_last_sector ); 00300 break; 00301 # endif 00302 # if (LUN_6 == ENABLE) 00303 case LUN_ID_6: 00304 return Lun_6_read_capacity( u32_last_sector ); 00305 break; 00306 # endif 00307 # if (LUN_7 == ENABLE) 00308 case LUN_ID_7: 00309 return Lun_7_read_capacity( u32_last_sector ); 00310 break; 00311 # endif 00312 # if (LUN_USB == ENABLE) 00313 default: 00314 return Lun_usb_read_capacity( lun - LUN_ID_USB, u32_last_sector ); 00315 break; 00316 # endif 00317 } 00318 return CTRL_FAIL; 00319 }
This function return the sector size of the memory.
| lun | Logical unit number |
Definition at line 328 of file ctrl_access.c.
References LUN_ID_USB, and Lun_usb_read_sector_size.
00329 { 00330 # if (LUN_USB == ENABLE) 00331 return (lun < LUN_ID_USB) ? 1 : Lun_usb_read_sector_size(lun- LUN_ID_USB); 00332 #else 00333 return 1; 00334 #endif 00335 }
This function return is the write protected mode.
| lun | Logical unit number |
Definition at line 347 of file ctrl_access.c.
References CTRL_FAIL, Lun_0_wr_protect, Lun_1_wr_protect, Lun_2_wr_protect, Lun_3_wr_protect, LUN_ID_0, LUN_ID_1, LUN_ID_2, LUN_ID_3, LUN_ID_4, LUN_ID_5, LUN_ID_6, LUN_ID_7, LUN_ID_USB, and Lun_usb_wr_protect.
00348 { 00349 switch( lun ) 00350 { 00351 # if (LUN_0 == ENABLE) 00352 case LUN_ID_0: 00353 return Lun_0_wr_protect(); 00354 break; 00355 # endif 00356 # if (LUN_1 == ENABLE) 00357 case LUN_ID_1: 00358 return Lun_1_wr_protect(); 00359 break; 00360 # endif 00361 # if (LUN_2 == ENABLE) 00362 case LUN_ID_2: 00363 return Lun_2_wr_protect(); 00364 break; 00365 # endif 00366 # if (LUN_3 == ENABLE) 00367 case LUN_ID_3: 00368 return Lun_3_wr_protect(); 00369 break; 00370 # endif 00371 # if (LUN_4 == ENABLE) 00372 case LUN_ID_4: 00373 return Lun_4_wr_protect(); 00374 break; 00375 # endif 00376 # if (LUN_5 == ENABLE) 00377 case LUN_ID_5: 00378 return Lun_5_wr_protect(); 00379 break; 00380 # endif 00381 # if (LUN_6 == ENABLE) 00382 case LUN_ID_6: 00383 return Lun_6_wr_protect(); 00384 break; 00385 # endif 00386 # if (LUN_7 == ENABLE) 00387 case LUN_ID_7: 00388 return Lun_7_wr_protect(); 00389 break; 00390 # endif 00391 # if (LUN_USB == ENABLE) 00392 default: 00393 return Lun_usb_wr_protect(lun - LUN_ID_USB); 00394 break; 00395 # endif 00396 } 00397 return CTRL_FAIL; 00398 }
This function inform about the memory type.
| lun | Logical unit number |
Definition at line 407 of file ctrl_access.c.
References CTRL_FAIL, Lun_0_removal, Lun_1_removal, Lun_2_removal, Lun_3_removal, LUN_ID_0, LUN_ID_1, LUN_ID_2, LUN_ID_3, LUN_ID_4, LUN_ID_5, LUN_ID_6, LUN_ID_7, and Lun_usb_removal.
00408 { 00409 switch( lun ) 00410 { 00411 # if (LUN_0 == ENABLE) 00412 case LUN_ID_0: 00413 return Lun_0_removal(); 00414 break; 00415 # endif 00416 # if (LUN_1 == ENABLE) 00417 case LUN_ID_1: 00418 return Lun_1_removal(); 00419 break; 00420 # endif 00421 # if (LUN_2 == ENABLE) 00422 case LUN_ID_2: 00423 return Lun_2_removal(); 00424 break; 00425 # endif 00426 # if (LUN_3 == ENABLE) 00427 case LUN_ID_3: 00428 return Lun_3_removal(); 00429 break; 00430 # endif 00431 # if (LUN_4 == ENABLE) 00432 case LUN_ID_4: 00433 return Lun_4_removal(); 00434 break; 00435 # endif 00436 # if (LUN_5 == ENABLE) 00437 case LUN_ID_5: 00438 return Lun_5_removal(); 00439 break; 00440 # endif 00441 # if (LUN_6 == ENABLE) 00442 case LUN_ID_6: 00443 return Lun_6_removal(); 00444 break; 00445 # endif 00446 # if (LUN_7 == ENABLE) 00447 case LUN_ID_7: 00448 return Lun_7_removal(); 00449 break; 00450 # endif 00451 # if (LUN_USB == ENABLE) 00452 default: 00453 return Lun_usb_removal(); 00454 break; 00455 # endif 00456 } 00457 return CTRL_FAIL; 00458 }
This function returns a pointer to the LUN name.
| lun | Logical unit number |
Definition at line 470 of file ctrl_access.c.
References lun0_name, lun1_name, lun2_name, lun3_name, lun4_name, lun5_name, lun6_name, lun7_name, LUN_ID_0, LUN_ID_1, LUN_ID_2, LUN_ID_3, LUN_ID_4, LUN_ID_5, LUN_ID_6, LUN_ID_7, and lunusb_name.
00472 { 00473 switch( lun ) 00474 { 00475 # if (LUN_0 == ENABLE) 00476 case LUN_ID_0: 00477 return (U8 code*)lun0_name; 00478 break; 00479 # endif 00480 # if (LUN_1 == ENABLE) 00481 case LUN_ID_1: 00482 return (U8 code*)lun1_name; 00483 break; 00484 # endif 00485 # if (LUN_2 == ENABLE) 00486 case LUN_ID_2: 00487 return (U8 code*)lun2_name; 00488 break; 00489 # endif 00490 # if (LUN_3 == ENABLE) 00491 case LUN_ID_3: 00492 return (U8 code*)lun3_name; 00493 break; 00494 # endif 00495 # if (LUN_4 == ENABLE) 00496 case LUN_ID_4: 00497 return (U8 code*)lun4_name; 00498 break; 00499 # endif 00500 # if (LUN_5 == ENABLE) 00501 case LUN_ID_5: 00502 return (U8 code*)lun5_name; 00503 break; 00504 # endif 00505 # if (LUN_6 == ENABLE) 00506 case LUN_ID_6: 00507 return (U8 code*)lun6_name; 00508 break; 00509 # endif 00510 # if (LUN_7 == ENABLE) 00511 case LUN_ID_7: 00512 return (U8 code*)lun7_name; 00513 break; 00514 # endif 00515 # if (LUN_USB == ENABLE) 00516 default: 00517 return (U8 code*)lunusb_name; 00518 break; 00519 # endif 00520 } 00521 return 0; // Remove compiler warning 00522 }
| Ctrl_status memory_2_usb | ( | U8 | lun, | |
| U32 | addr, | |||
| U16 | nb_sector | |||
| ) |
This function tranfer a data from memory to usb.
| lun | Logical unit number | |
| addr | Sector address to start read (sector = 512B) | |
| nb_sector | Number of sectors to transfer |
Definition at line 542 of file ctrl_access.c.
References CTRL_FAIL, Lun_0_read_10, Lun_1_read_10, Lun_2_read_10, Lun_3_read_10, LUN_ID_0, LUN_ID_1, LUN_ID_2, LUN_ID_3, LUN_ID_4, LUN_ID_5, LUN_ID_6, and LUN_ID_7.
00543 { 00544 Ctrl_status status=CTRL_FAIL; 00545 00546 switch( lun ) 00547 { 00548 # if (LUN_0 == ENABLE) 00549 case LUN_ID_0: 00550 status = Lun_0_read_10(addr , nb_sector); 00551 break; 00552 # endif 00553 # if (LUN_1 == ENABLE) 00554 case LUN_ID_1: 00555 status = Lun_1_read_10(addr , nb_sector); 00556 break; 00557 # endif 00558 # if (LUN_2 == ENABLE) 00559 case LUN_ID_2: 00560 status = Lun_2_read_10(addr , nb_sector); 00561 break; 00562 # endif 00563 # if (LUN_3 == ENABLE) 00564 case LUN_ID_3: 00565 status = Lun_3_read_10(addr , nb_sector); 00566 break; 00567 # endif 00568 # if (LUN_4 == ENABLE) 00569 case LUN_ID_4: 00570 status = Lun_4_read_10(addr , nb_sector); 00571 break; 00572 # endif 00573 # if (LUN_5 == ENABLE) 00574 case LUN_ID_5: 00575 status = Lun_5_read_10(addr , nb_sector); 00576 break; 00577 # endif 00578 # if (LUN_6 == ENABLE) 00579 case LUN_ID_6: 00580 status = Lun_6_read_10(addr , nb_sector); 00581 break; 00582 # endif 00583 # if (LUN_7 == ENABLE) 00584 case LUN_ID_7: 00585 status = Lun_7_read_10(addr , nb_sector); 00586 break; 00587 # endif 00588 } 00589 return status; 00590 }
| Ctrl_status usb_2_memory | ( | U8 | lun, | |
| U32 | addr, | |||
| U16 | nb_sector | |||
| ) |
This function transfer a data from usb to memory.
| lun | Logical unit number | |
| addr | Sector address to start write (sector = 512B) | |
| nb_sector | Number of sectors to transfer |
Definition at line 603 of file ctrl_access.c.
References CTRL_FAIL, Lun_0_write_10, Lun_1_write_10, Lun_2_write_10, Lun_3_write_10, LUN_ID_0, LUN_ID_1, LUN_ID_2, LUN_ID_3, LUN_ID_4, LUN_ID_5, LUN_ID_6, and LUN_ID_7.
00604 { 00605 Ctrl_status status=CTRL_FAIL; 00606 00607 switch( lun ) 00608 { 00609 # if (LUN_0 == ENABLE) 00610 case LUN_ID_0: 00611 status = Lun_0_write_10(addr , nb_sector); 00612 break; 00613 # endif 00614 # if (LUN_1 == ENABLE) 00615 case LUN_ID_1: 00616 status = Lun_1_write_10(addr , nb_sector); 00617 break; 00618 # endif 00619 # if (LUN_2 == ENABLE) 00620 case LUN_ID_2: 00621 status = Lun_2_write_10(addr , nb_sector); 00622 break; 00623 # endif 00624 # if (LUN_3 == ENABLE) 00625 case LUN_ID_3: 00626 status = Lun_3_write_10(addr , nb_sector); 00627 break; 00628 # endif 00629 # if (LUN_4 == ENABLE) 00630 case LUN_ID_4: 00631 status = Lun_4_write_10(addr , nb_sector); 00632 break; 00633 # endif 00634 # if (LUN_5 == ENABLE) 00635 case LUN_ID_5: 00636 status = Lun_5_write_10(addr , nb_sector); 00637 break; 00638 # endif 00639 # if (LUN_6 == ENABLE) 00640 case LUN_ID_6: 00641 status = Lun_6_write_10(addr , nb_sector); 00642 break; 00643 # endif 00644 # if (LUN_7 == ENABLE) 00645 case LUN_ID_7: 00646 status = Lun_7_write_10(addr , nb_sector); 00647 break; 00648 # endif 00649 } 00650 return status; 00651 }
| Ctrl_status memory_2_ram | ( | U8 | lun, | |
| const U32 _MEM_TYPE_SLOW_ | addr, | |||
| U8 _MEM_TYPE_SLOW_ * | ram | |||
| ) |
Interface for RAM.
This function tranfer one sector data from memory to ram
| lun | Logical unit number | |
| addr | Sector address to start read (sector = 512B) | |
| nb_sector | Number of sectors to transfer | |
| ram | Adresse of ram buffer (only xdata) |
Definition at line 668 of file ctrl_access.c.
References CTRL_FAIL, Lun_0_mem_2_ram, Lun_1_mem_2_ram, Lun_2_mem_2_ram, Lun_3_mem_2_ram, LUN_ID_0, LUN_ID_1, LUN_ID_2, LUN_ID_3, LUN_ID_4, LUN_ID_5, LUN_ID_6, LUN_ID_7, LUN_ID_USB, and Lun_usb_mem_2_ram.
00669 { 00670 00671 Ctrl_status status=CTRL_FAIL; 00672 00673 switch( lun ) 00674 { 00675 # if (LUN_0 == ENABLE) 00676 case LUN_ID_0: 00677 status = Lun_0_mem_2_ram(addr , ram); 00678 break; 00679 # endif 00680 # if (LUN_1 == ENABLE) 00681 case LUN_ID_1: 00682 status = Lun_1_mem_2_ram(addr , ram); 00683 break; 00684 # endif 00685 # if (LUN_2 == ENABLE) 00686 case LUN_ID_2: 00687 status = Lun_2_mem_2_ram(addr , ram); 00688 break; 00689 # endif 00690 # if (LUN_3 == ENABLE) 00691 case LUN_ID_3: 00692 status = Lun_3_mem_2_ram(addr , ram); 00693 break; 00694 # endif 00695 # if (LUN_4 == ENABLE) 00696 case LUN_ID_4: 00697 status = Lun_4_mem_2_ram(addr , ram); 00698 break; 00699 # endif 00700 # if (LUN_5 == ENABLE) 00701 case LUN_ID_5: 00702 status = Lun_5_mem_2_ram(addr , ram); 00703 break; 00704 # endif 00705 # if (LUN_6 == ENABLE) 00706 case LUN_ID_6: 00707 status = Lun_6_mem_2_ram(addr , ram); 00708 break; 00709 # endif 00710 # if (LUN_7 == ENABLE) 00711 case LUN_ID_7: 00712 status = Lun_7_mem_2_ram(addr , ram); 00713 break; 00714 # endif 00715 # if (LUN_USB == ENABLE) 00716 default: 00717 return Lun_usb_mem_2_ram(lun - LUN_ID_USB,addr , ram); 00718 # endif 00719 } 00720 return status; 00721 }
| Ctrl_status ram_2_memory | ( | U8 | lun, | |
| const U32 _MEM_TYPE_SLOW_ | addr, | |||
| U8 _MEM_TYPE_SLOW_ * | ram | |||
| ) |
This function transfer a data from ram to memory.
| lun | Logical unit number | |
| addr | Sector address to start write (sector = 512B) | |
| nb_sector | Number of sectors to transfer | |
| ram | Adresse of ram buffer (only xdata) |
Definition at line 740 of file ctrl_access.c.
References CTRL_FAIL, Lun_0_ram_2_mem, Lun_1_ram_2_mem, Lun_2_ram_2_mem, Lun_3_ram_2_mem, LUN_ID_0, LUN_ID_1, LUN_ID_2, LUN_ID_3, LUN_ID_4, LUN_ID_5, LUN_ID_6, LUN_ID_7, LUN_ID_USB, and Lun_usb_ram_2_mem.
00741 { 00742 Ctrl_status status=CTRL_FAIL; 00743 00744 switch( lun ) 00745 { 00746 # if (LUN_0 == ENABLE) 00747 case LUN_ID_0: 00748 status = Lun_0_ram_2_mem(addr , ram); 00749 break; 00750 # endif 00751 # if (LUN_1 == ENABLE) 00752 case LUN_ID_1: 00753 status = Lun_1_ram_2_mem(addr , ram); 00754 break; 00755 # endif 00756 # if (LUN_2 == ENABLE) 00757 case LUN_ID_2: 00758 status = Lun_2_ram_2_mem(addr , ram); 00759 break; 00760 # endif 00761 # if (LUN_3 == ENABLE) 00762 case LUN_ID_3: 00763 status = Lun_3_ram_2_mem(addr , ram); 00764 break; 00765 # endif 00766 # if (LUN_4 == ENABLE) 00767 case LUN_ID_4: 00768 status = Lun_4_ram_2_mem(addr , ram); 00769 break; 00770 # endif 00771 # if (LUN_5 == ENABLE) 00772 case LUN_ID_5: 00773 status = Lun_5_ram_2_mem(addr , ram); 00774 break; 00775 # endif 00776 # if (LUN_6 == ENABLE) 00777 case LUN_ID_6: 00778 status = Lun_6_ram_2_mem(addr , ram); 00779 break; 00780 # endif 00781 # if (LUN_7 == ENABLE) 00782 case LUN_ID_7: 00783 status = Lun_7_ram_2_mem(addr , ram); 00784 break; 00785 # endif 00786 # if (LUN_USB == ENABLE) 00787 default: 00788 return Lun_usb_ram_2_mem(lun - LUN_ID_USB,addr , ram); 00789 break; 00790 # endif 00791 } 00792 return status; 00793 }
This function copy a data from memory to other memory.
| addr | Sector address to start write | |
| nb_sector | Number of sectors to transfer |
Definition at line 801 of file ctrl_access.c.
References CTRL_FAIL, CTRL_GOOD, fat_cache_flush(), fat_cache_reset(), fs_g_sector, ID_STREAM_ERR, memory_2_ram(), and ram_2_memory().
00802 { 00803 Ctrl_status status=CTRL_FAIL; 00804 fat_cache_flush(); 00805 while(nb_sector) 00806 { 00807 status = memory_2_ram( src_lun , src_addr , fs_g_sector ); 00808 if( status != CTRL_GOOD ) 00809 break; 00810 status = ram_2_memory( dest_lun , dest_addr , fs_g_sector ); 00811 if( status != CTRL_GOOD ) 00812 break; 00813 src_addr++; 00814 dest_addr++; 00815 nb_sector--; 00816 } 00817 fat_cache_reset(); 00818 return (status != CTRL_GOOD)? ID_STREAM_ERR:0; 00819 }
| Ctrl_status stream_state | ( | U8 | Id | ) |
Returns the state on a data transfer.
| id | transfer id |
Definition at line 831 of file ctrl_access.c.
References CTRL_GOOD.
00832 { 00833 return CTRL_GOOD; 00834 }
Stop the data transfer.
| id | Transfer id |
Definition at line 842 of file ctrl_access.c.
1.5.3