From: jcar Date: Fri, 7 Sep 2012 07:32:48 +0000 (+0200) Subject: Updated after mcaltest run X-Git-Url: http://rtime.felk.cvut.cz/gitweb/arc.git/commitdiff_plain/627aa3b465e4b7cbba9be0697d5e099466df0ee2 Updated after mcaltest run --- diff --git a/arch/ppc/mpc55xx/drivers/Adc_560x.c b/arch/ppc/mpc55xx/drivers/Adc_560x.c index ba0fd25b..953ac7b4 100644 --- a/arch/ppc/mpc55xx/drivers/Adc_560x.c +++ b/arch/ppc/mpc55xx/drivers/Adc_560x.c @@ -104,6 +104,7 @@ static const Adc_ConfigType * Adc_GetControllerConfigPtrFromGroupId(Adc_GroupTyp void Adc_DeInit () { volatile struct ADC_tag *hwPtr; + boolean okToClear = TRUE; for (int configId = 0; configId < ADC_ARC_CTRL_CONFIG_CNT; configId++) { hwPtr = GET_HW_CONTROLLER(AdcGlobalConfigPtr[configId].hwConfigPtr->hwUnitId); @@ -114,7 +115,7 @@ void Adc_DeInit () for(Adc_GroupType group = (Adc_GroupType)0; group < AdcConfigPtr->nbrOfGroups; group++) { /* Set group status to idle. */ - AdcConfigPtr->groupConfigPtr[group/NOF_GROUP_PER_CONTROLLER/NOF_GROUP_PER_CONTROLLER].status->groupStatus = ADC_IDLE; + AdcConfigPtr->groupConfigPtr[group].status->groupStatus = ADC_IDLE; } /* Disable DMA transfer*/ @@ -127,10 +128,19 @@ void Adc_DeInit () /* Disable all interrupt*/ hwPtr->IMR.R = 0; } + else + { + /* Not ok to change adcState if any unit is running */ + okToClear = FALSE; + } } - /* Clean internal status. */ - AdcGlobalConfigPtr = (Adc_ConfigType *)NULL; - adcState = ADC_UNINIT; + + if(okToClear) + { + /* Clean internal status. */ + AdcGlobalConfigPtr = (Adc_ConfigType *)NULL; + adcState = ADC_UNINIT; + } } #endif @@ -165,7 +175,7 @@ Std_ReturnType Adc_SetupResultBuffer (Adc_GroupType group, Adc_ValueGroupType *b /* Check for development errors. */ if (E_OK == Adc_CheckSetupResultBuffer (adcState, AdcConfigPtr, group)) { - AdcConfigPtr->groupConfigPtr[group/NOF_GROUP_PER_CONTROLLER/NOF_GROUP_PER_CONTROLLER].status->resultBufferPtr = bufferPtr; + AdcConfigPtr->groupConfigPtr[group%NOF_GROUP_PER_CONTROLLER].status->resultBufferPtr = bufferPtr; returnValue = E_OK; } @@ -395,17 +405,17 @@ void Adc_Group0ConversionComplete (int unit) // Check which group is busy, only one is allowed to be busy at a time in a hw unit for (int group = 0; group < ADC_NBR_OF_GROUPS; group++) { - if((AdcConfigPtr->groupConfigPtr[group%NOF_GROUP_PER_CONTROLLER].status->groupStatus == ADC_BUSY) || - (AdcConfigPtr->groupConfigPtr[group%NOF_GROUP_PER_CONTROLLER].status->groupStatus == ADC_COMPLETED)) + if((AdcConfigPtr->groupConfigPtr[group].status->groupStatus == ADC_BUSY) || + (AdcConfigPtr->groupConfigPtr[group].status->groupStatus == ADC_COMPLETED)) { #if !defined (ADC_USES_DMA) /* Copy to result buffer */ - for(uint8 index=0; index < AdcConfigPtr->groupConfigPtr[group%NOF_GROUP_PER_CONTROLLER].numberOfChannels; index++) + for(uint8 index=0; index < AdcConfigPtr->groupConfigPtr[group].numberOfChannels; index++) { #if defined(CFG_MPC5606S) - AdcConfigPtr->groupConfigPtr[group%NOF_GROUP_PER_CONTROLLER].status->currResultBufPtr[index] = hwPtr->CDR[32+AdcConfigPtr->groupConfigPtr[group%NOF_GROUP_PER_CONTROLLER].channelList[index]].B.CDATA; + AdcConfigPtr->groupConfigPtr[group].status->currResultBufPtr[index] = hwPtr->CDR[32+AdcConfigPtr->groupConfigPtr[group].channelList[index]].B.CDATA; #else - AdcConfigPtr->groupConfigPtr[group%NOF_GROUP_PER_CONTROLLER].status->currResultBufPtr[index] = hwPtr->CDR[AdcConfigPtr->groupConfigPtr[group%NOF_GROUP_PER_CONTROLLER].channelList[index]].B.CDATA; + AdcConfigPtr->groupConfigPtr[group].status->currResultBufPtr[index] = hwPtr->CDR[AdcConfigPtr->groupConfigPtr[group].channelList[index]].B.CDATA; #endif } #endif diff --git a/arch/ppc/mpc55xx/drivers/Gpt.c b/arch/ppc/mpc55xx/drivers/Gpt.c index 37263336..9676cf12 100644 --- a/arch/ppc/mpc55xx/drivers/Gpt.c +++ b/arch/ppc/mpc55xx/drivers/Gpt.c @@ -204,6 +204,7 @@ GPT_ISR( 7 ) GPT_ISR( 8 ) #endif #endif +#endif #if defined(CFG_MPC560X) #if defined(CFG_MPC5606S) diff --git a/arch/ppc/mpc55xx/drivers/MPC5606B.h b/arch/ppc/mpc55xx/drivers/MPC5606B.h index d17ab62b..9dc745e4 100644 --- a/arch/ppc/mpc55xx/drivers/MPC5606B.h +++ b/arch/ppc/mpc55xx/drivers/MPC5606B.h @@ -2829,7 +2829,7 @@ struct LINFLEX_tag { vuint32_t AWUM:1; vuint32_t MBL:4; vuint32_t BF:1; - vuint32_t SFTM:1; + vuint32_t SLFM:1; vuint32_t LBKM:1; vuint32_t MME:1; vuint32_t SBDT:1; @@ -4850,7 +4850,7 @@ struct EMIOS_tag{ vuint32_t MDIS:1; vuint32_t FRZ:1; } B; - } PITMCR; + } MCR; vuint8_t PIT_reserved0[252]; /* Reserved 252 Bytes (Base+0x0004-0x00FF) */ @@ -5529,6 +5529,13 @@ struct INTC_tag { } PSR[234]; }; /* end of INTC_tag */ + +/****************************************************************************/ +/* MODULE : DSPI */ +/****************************************************************************/ +#include "ip_dspi.h" + +#if 0 /****************************************************************************/ /* MODULE : DSPI */ /* Base Addresses: */ @@ -5686,6 +5693,14 @@ struct DSPI_tag{ } B; } RXFR[4]; }; /* end of DSPI_tag */ +#endif + +/****************************************************************************/ +/* MODULE : FlexCAN */ +/****************************************************************************/ +#include "ip_flexcan.h" + +#if 0 /****************************************************************************/ /* MODULE : FlexCAN */ /* Base Addresses: */ @@ -6067,6 +6082,9 @@ struct FLEXCAN_tag{ } RXIMR[64]; }; /* end of FLEXCAN_tag */ + +#endif + /****************************************************************************/ /* MODULE : DMAMUX (base address - 0xFFFD_C000) */ /****************************************************************************/ diff --git a/arch/ppc/mpc55xx/drivers/Mcu.c b/arch/ppc/mpc55xx/drivers/Mcu.c index 8d5380f5..be6d308e 100644 --- a/arch/ppc/mpc55xx/drivers/Mcu.c +++ b/arch/ppc/mpc55xx/drivers/Mcu.c @@ -823,6 +823,8 @@ uint32_t McuE_GetPeripheralClock(McuE_PeriperalClock_t type) case PERIPHERAL_CLOCK_DSPI_B: case PERIPHERAL_CLOCK_DSPI_C: case PERIPHERAL_CLOCK_DSPI_D: + case PERIPHERAL_CLOCK_DSPI_E: + case PERIPHERAL_CLOCK_DSPI_F: #if defined(CFG_MPC5516) prescaler = SIU.SYSCLK.B.LPCLKDIV3; break; diff --git a/arch/ppc/mpc55xx/drivers/Spi.c b/arch/ppc/mpc55xx/drivers/Spi.c index 4237eb0f..6b0b6cba 100644 --- a/arch/ppc/mpc55xx/drivers/Spi.c +++ b/arch/ppc/mpc55xx/drivers/Spi.c @@ -495,6 +495,12 @@ static void Spi_Isr_C(void) { static void Spi_Isr_D(void) { Spi_Isr(GET_SPI_UNIT_PTR(DSPI_CTRL_D)); } +static void Spi_Isr_E(void) { + Spi_Isr(GET_SPI_UNIT_PTR(DSPI_CTRL_E)); +} +static void Spi_Isr_F(void) { + Spi_Isr(GET_SPI_UNIT_PTR(DSPI_CTRL_F)); +} /* ----------------------------[public functions]----------------------------*/ uint32 Spi_GetJobCnt(void); @@ -1270,12 +1276,12 @@ static void Spi_InitController(Spi_UnitType *uPtr ) { break; #endif #if (SPI_CONTROLLER_TOTAL_CNT > 4) - case 3: + case 4: ISR_INSTALL_ISR2("SPI_E",Spi_Isr_E, DSPI_E_ISR_EOQF, 15, 0); break; #endif #if (SPI_CONTROLLER_TOTAL_CNT > 5) - case 3: + case 5: ISR_INSTALL_ISR2("SPI_F",Spi_Isr_F, DSPI_F_ISR_EOQF, 15, 0); break; #endif diff --git a/arch/ppc/mpc55xx/kernel/irq_types.h b/arch/ppc/mpc55xx/kernel/irq_types.h index 2143487c..e4ec2e7c 100644 --- a/arch/ppc/mpc55xx/kernel/irq_types.h +++ b/arch/ppc/mpc55xx/kernel/irq_types.h @@ -199,8 +199,8 @@ typedef enum PIT_INT4, // 5606-128 PIT_INT5, // 5606-129 - RESERVED43, // 5606-130 - RESERVED44, // 5606-131 + PIT_INT6, // 5606-130 + PIT_INT7, // 5606-131 RESERVED45, // 5606-132 RESERVED46, // 5606-133 RESERVED47, // 5606-134 @@ -1003,6 +1003,8 @@ typedef enum PERIPHERAL_CLOCK_DSPI_B, PERIPHERAL_CLOCK_DSPI_C, PERIPHERAL_CLOCK_DSPI_D, + PERIPHERAL_CLOCK_DSPI_E, + PERIPHERAL_CLOCK_DSPI_F, #if defined(CFG_MPC560X) PERIPHERAL_CLOCK_EMIOS_0, PERIPHERAL_CLOCK_EMIOS_1, diff --git a/boards/mpc5606b_xpc560b/config/Fls_Cfg.c b/boards/mpc5606b_xpc560b/config/Fls_Cfg.c index 782d9dab..6459ee57 100644 --- a/boards/mpc5606b_xpc560b/config/Fls_Cfg.c +++ b/boards/mpc5606b_xpc560b/config/Fls_Cfg.c @@ -18,7 +18,7 @@ #include -#if defined(CFG_MPC5606S) +#if defined(CFG_MPC5606B) /* TODO: This can actually be read from the flash instead */ const FlashType flashInfo[] = { @@ -75,49 +75,6 @@ const FlashType flashInfo[] = { [2].addrSpace[3] = ADDR_SPACE_SET(ADDR_SPACE_MID) + 1, [2].sectAddr[4] = 0x100000, /* End, NOT a sector */ }; -#else if defined(CFG_MPC5606B) - -/* TODO: This can actually be read from the flash instead */ -const FlashType flashInfo[] = { - /* NO RWW */ - - /* Bank 0, Array 0 (LOW) */ - [0].sectCnt = 8, - [0].bankSize = 0x80000, -// [0].bankRange = BANK_RANGE_CODE_LOW, - [0].regBase = 0xC3F88000UL, - [0].sectAddr[0] = 0, /* 0, B0F0, LOW */ - [0].addrSpace[0] = ADDR_SPACE_SET(ADDR_SPACE_LOW) + 0, - [0].sectAddr[1] = 0x08000, /* 1, B0F1, LOW */ - [0].addrSpace[1] = ADDR_SPACE_SET(ADDR_SPACE_LOW) + 1, - [0].sectAddr[2] = 0x0c000, /* 2, B0F2, LOW */ - [0].addrSpace[2] = ADDR_SPACE_SET(ADDR_SPACE_LOW) + 2, - [0].sectAddr[3] = 0x10000, /* 3, B0F3, LOW */ - [0].addrSpace[3] = ADDR_SPACE_SET(ADDR_SPACE_LOW) + 3, - [0].sectAddr[4] = 0x18000, /* 4, B0F4, LOW */ - [0].addrSpace[4] = ADDR_SPACE_SET(ADDR_SPACE_LOW) + 4, - [0].sectAddr[5] = 0x20000, /* 5, B0F5, LOW */ - [0].addrSpace[5] = ADDR_SPACE_SET(ADDR_SPACE_LOW) + 5, - [0].sectAddr[6] = 0x40000, /* 6, B0F6, MID */ - [0].addrSpace[6] = ADDR_SPACE_SET(ADDR_SPACE_MID) + 0, - [0].sectAddr[7] = 0x60000, /* 7, B0F7, MID */ - [0].addrSpace[7] = ADDR_SPACE_SET(ADDR_SPACE_MID) + 1, - [0].sectAddr[8] = 0x80000, /* End, NOT a sector */ - - /* Bank 1, Data */ - [1].sectCnt = 4, - [1].bankSize = 0x810000 - 0x800000, - [1].regBase = 0xC3F8C000UL, - [1].sectAddr[0] = 0x800000, /* LOW */ - [1].addrSpace[0] = ADDR_SPACE_SET(ADDR_SPACE_LOW) + 0, - [1].sectAddr[1] = 0x804000, /* LOW */ - [1].addrSpace[1] = ADDR_SPACE_SET(ADDR_SPACE_LOW) + 1, - [1].sectAddr[2] = 0x808000, /* LOW */ - [1].addrSpace[2] = ADDR_SPACE_SET(ADDR_SPACE_LOW) + 2, - [1].sectAddr[3] = 0x80c000, /* LOW */ - [1].addrSpace[3] = ADDR_SPACE_SET(ADDR_SPACE_LOW) + 3, - [1].sectAddr[4] = 0x810000, /* End, NOT a sector */ -}; #else #error CPU NOT supported diff --git a/boards/mpc5606b_xpc560b/config/Fls_Cfg.h b/boards/mpc5606b_xpc560b/config/Fls_Cfg.h index be147493..1a166f88 100644 --- a/boards/mpc5606b_xpc560b/config/Fls_Cfg.h +++ b/boards/mpc5606b_xpc560b/config/Fls_Cfg.h @@ -63,7 +63,7 @@ #define FLS_WRITE_TIME 0 /* NO SUPPORT */ /* MCU Specific */ -#if defined(CFG_MPC5606S) +#if defined(CFG_MPC5606B) #define FLASH_BANK_CNT 3 #define FLASH_PAGE_SIZE 8