这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » vxworks code error,thanks

共1条 1/1 1 跳转至

vxworks code error,thanks

菜鸟
2007-12-13 09:21:13     打赏

LOCAL AT91S_MciDeviceFeatures   MCI_Device_Features;
LOCAL  AT91S_MciDeviceDesc   MCI_Device_Desc;
LOCAL AT91S_MciDevice *    pMCI_Device=0;

/*-----------------------------------------------*/
/* SDCard Device Descriptor Structure Definition */
/*-----------------------------------------------*/
typedef struct _AT91S_MciDeviceDesc
{
    volatile unsigned int state;
 unsigned int   SDCard_bus_width;

} AT91S_MciDeviceDesc, *AT91PS_MciDeviceDesc;

/*---------------------------------------------*/
/* MMC & SDCard Structure Device Features    */
/*---------------------------------------------*/
typedef struct _AT91S_MciDeviceFeatures
{
    unsigned int Card_Inserted;    /* (0=AT91C_CARD_REMOVED) (1=AT91C_MMC_CARD_INSERTED) (2=AT91C_SD_CARD_INSERTED)*/
    unsigned int  Relative_Card_Address;  /* RCA*/
 unsigned int  Max_Read_DataBlock_Length; /* 2^(READ_BL_LEN) in CSD */
 unsigned int  Max_Write_DataBlock_Length; /* 2^(WRITE_BL_LEN) in CSD*/
 unsigned int Read_Partial;    /* READ_BL_PARTIAL*/
 unsigned int Write_Partial;    /* WRITE_BL_PARTIAL*/
 unsigned int Erase_Block_Enable;   /* ERASE_BLK_EN*/
 unsigned int Read_Block_Misalignment; /* READ_BLK_MISALIGN*/
 unsigned int Write_Block_Misalignment; /* WRITE_BLK_MISALIGN*/
 unsigned int Sector_Size;    /* SECTOR_SIZE*/
 unsigned int Memory_Capacity;   /* Size in bits of the device*/
 
} AT91S_MciDeviceFeatures, *AT91PS_MciDeviceFeatures ;

/*---------------------------------------------*/
/* MCI Device Structure Definition       */
/*---------------------------------------------*/
typedef struct _AT91S_MciDevice
{
 BLK_DEV blkDev;
 int drive;
        int blkOffset ;
 AT91PS_MciDeviceDesc    pMCI_DeviceDesc; /* MCI device descriptor*/
 AT91PS_MciDeviceFeatures  pMCI_DeviceFeatures;/* Pointer on a MCI device features array  */
}AT91S_MciDevice, *AT91PS_MciDevice;

void AT91F_CfgDevice(AT91PS_MciDevice pmmcDev)
{
 /* Init Device Structure*/

 MCI_Device_Features.Relative_Card_Address   = 0;
 MCI_Device_Features.Card_Inserted     = AT91C_CARD_REMOVED;
 MCI_Device_Features.Max_Read_DataBlock_Length = 0;
 MCI_Device_Features.Max_Write_DataBlock_Length  = 0;
 MCI_Device_Features.Read_Partial     = 0;
 MCI_Device_Features.Write_Partial     = 0;
 MCI_Device_Features.Erase_Block_Enable    = 0;
 MCI_Device_Features.Sector_Size     = 0;
 MCI_Device_Features.Memory_Capacity    = 0;
 
 MCI_Device_Desc.state       = AT91C_MCI_IDLE;
 MCI_Device_Desc.SDCard_bus_width    = AT91C_MCI_SCDBUS;
 
 /* Init AT91S_DataFlash Global Structure, by default AT45DB choosen !!!*/
 pmmcDev->pMCI_DeviceDesc   = &MCI_Device_Desc;
 pmmcDev->pMCI_DeviceFeatures  = &MCI_Device_Features;

}


void mmcDevCreate(void)
{
 AT91PS_MciDevice pmmcDev;
  
    if ((pmmcDev = (AT91PS_MciDevice )calloc(sizeof (AT91PS_MciDevice), 1)) == NULL)
 return (NULL);
     pMCI_Device = pmmcDev; 
     AT91F_CfgDevice(pmmcDev);
    
}


上面代码中,执行到
 pmmcDev->pMCI_DeviceDesc   = &MCI_Device_Desc;
 pmmcDev->pMCI_DeviceFeatures  = &MCI_Device_Features;
系统出错,提示信息如下:
Data abort
Exception address: 0x20013fe8
Current Processor Status Register: 0x20000013

trcStack aborted: error in top frame
shell restarted.


请问,这边可以直接给指针赋值?谢谢!




关键词: vxworks     error     thanks     AT91    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]