⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ram_dsk.c

📁 包含了NXP众多的MCU的例子程序
💻 C
📖 第 1 页 / 共 2 页
字号:
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x52, 0x61, 0x6d, 0x20, 0x64, 0x72,
0x69, 0x76, 0x65, 0x72, 0x20, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x69,
0x73, 0x20, 0x69, 0x73, 0x20, 0x64, 0x65, 0x6d, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69,
0x6f, 0x6e, 0x20, 0x0d, 0x0a, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x49, 0x41, 0x52,
0x20, 0x4c, 0x50, 0x43, 0x2d, 0x32, 0x31, 0x34, 0x78, 0x20, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x20,
0x77, 0x69, 0x74, 0x68, 0x20, 0x4c, 0x50, 0x43, 0x32, 0x31, 0x34, 0x38, 0x2e, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};

#pragma data_alignment=4
__no_init Int8U RamDisk[RAM_DSK_BLOCK_SIZE * RAM_DSK_BLOCK_NUMB];

DiskStatus_t RamDskStatus;

/*************************************************************************
 * Function Name: RamDiskInit
 * Parameters:  none
 *
 * Return: none
 *
 * Description: Init RAM disk
 *
 *************************************************************************/
void RamDiskInit (void)
{
  RamDskStatus.BlockNumb    = RAM_DSK_BLOCK_NUMB;
  RamDskStatus.BlockSize    = RAM_DSK_BLOCK_SIZE;
  RamDskStatus.DiskStatus   = DiskCommandPass;
  RamDskStatus.DiskType     = DiskUnknow;
  RamDskStatus.WriteProtect = FALSE;
  RamDskStatus.MediaChanged = TRUE;
  memcpy(RamDisk,RamDiskInitData, sizeof(RamDiskInitData));
}

/*************************************************************************
 * Function Name: RamDiskInfo
 * Parameters:  pInt8U pData, DiskInfoType_t DiskInfoType
 *
 * Return: Int32U
 *
 * Description: Return pointer to Info stucture of the disk
 * (Inquiry or Format capacity)
 *
 *************************************************************************/
Int32U RamDiskInfo (pInt8U pData, DiskInfoType_t DiskInfoType)
{
  switch (DiskInfoType)
  {
  case DiskInquiry:
    memcpy(pData,RamDskInquiry,SizeOfInquiryDescRamDsk);
    return(SizeOfInquiryDescRamDsk);
  case DiskFormatCapacity:
    memcpy(pData,RamDskFormatCapacity,SizeOfFormatCapacityRamDsk);
    return(SizeOfFormatCapacityRamDsk);
  }
  return(0);
}

/*************************************************************************
 * Function Name: RamDiskStatus
 * Parameters:  void
 *
 * Return: pDiskStatus_t
 *
 * Description: Return pointer to status stucture of the disk
 *
 *************************************************************************/
pDiskStatus_t RamDiskStatus (void)
{
  return(&RamDskStatus);
}

/*************************************************************************
 * Function Name: RamDiskIO
 * Parameters: pInt8U pData,Int32U BlockStart,
 *             Int32U BlockNum, DiskIoRequest_t IoRequest
 *
 * Return: DiskStatusCode_t
 *
 * Description: Ram disk I/O
 *
 *************************************************************************/
DiskStatusCode_t RamDiskIO (pInt8U pData,Int32U BlockStart,
                            Int32U BlockNum, DiskIoRequest_t IoRequest)
{
  if((pData == NULL) || (BlockStart+BlockNum > RAM_DSK_BLOCK_NUMB))
  {
    return(DiskParametersError);
  }
  switch (IoRequest)
  {
  case DiskWrite:
    memcpy(RamDisk+(BlockStart*RAM_DSK_BLOCK_SIZE),pData,BlockNum*RAM_DSK_BLOCK_SIZE);
    break;
  case DiskRead:
    memcpy(pData,RamDisk+(BlockStart*RAM_DSK_BLOCK_SIZE),BlockNum*RAM_DSK_BLOCK_SIZE);
    break;
  case DiskVerify:
    if(memcmp(RamDisk+(BlockStart*RAM_DSK_BLOCK_SIZE),pData,BlockNum*RAM_DSK_BLOCK_SIZE))
    {
      return(DiskMiscompareError);
    }
    break;
  default:
    return(DiskParametersError);
  }
  return(DiskCommandPass);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -