Hi Erich
I bypassed the CLSI and used the following:
In Host_Init() I tried both
#define ONLY_HOST 1 & 0
If defined as 1, I see the Blue LED turn on which I think is idle, but I never see it attach or be interfaced, and it is in an infinite loop, which I understand would not be in final code. But I never see it function normally. There are no events enabled in any of the FsMSD1, USB1, FAT1 components, so that would explain none of the events registering. I did not change any of the component properties apart from pin changes for the k20dx256 processor. But I can see that the USB is not mounted. The system fails when it tries to mount the volume.
When defined as 0, HOST_Init() runs without detecting any errors and creates a Task HostTask, then exits with a success status (it doesn't get trapped in the for(;;;), however I do not see any of the normal USB fcns like Attach, happen. Below is the code sequence I tried. I was not sure if I needed the HOST_Init, because I thought I saw if the USB was not mounted then the FsMSDI would mount the USB drive. The code is hanging in ff.c in FAT1_mount, it tries to read sector 0, but by this point it is all wrong because the volume is not mounted. It dies in check_fs when it tries to load the boot record.

I attached the USB0.c file that shows the PE settings. PE really is a remarkable system in how it documents everything so clearly and regenerates the settings with accurate comments each time a component changes. Much better than extracting programming comments from a header file that are usually inaccurate and not well maintained.
Thanks again for the advice and help.
Robert
/* Write your code here */
/* For example: for(;;) { } */
// APP_Run(); // **rwl, added to run cli, and mfs init
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
HOST_Init();
if (FAT1_Init()!=ERR_OK) {
printf("Failed FatFS initialization!\r\n");
return;
}
if (FAT1_mount(&fileSystemObject, (const TCHAR*)"0", 1) != FR_OK) { /* mount file system */
printf((unsigned char*)"Failed FatFS initialization!\r\n");
return;
}
/* write file */
printf((const unsigned char*)"Creating test.txt...\r\n");
if (FAT1_open(&fp, "./test.txt", FA_CREATE_ALWAYS|FA_WRITE)!=FR_OK) {
printf((const unsigned char*)"*** Failed creating file!\r\n");
return ERR_FAILED;
}
/* write text */
if (FAT1_write(&fp, "Hello world ", sizeof("Hello world ")-1, &bw)!=FR_OK) {
printf((const unsigned char*)"*** Failed writing string!\r\n");
(void)FAT1_close(&fp);
return ERR_FAILED;
}
FRTOS1_vTaskStartScheduler();
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%