mirror of
https://github.com/FreeRTOS/FreeRTOS-Kernel.git
synced 2025-08-20 10:08:33 -04:00
Add MCF52259 demo.
This commit is contained in:
parent
8981a8539a
commit
fe73d24184
60 changed files with 10188 additions and 0 deletions
81
Demo/ColdFire_MCF52259_CodeWarrior/cpu/mcf5225x.c
Normal file
81
Demo/ColdFire_MCF52259_CodeWarrior/cpu/mcf5225x.c
Normal file
|
@ -0,0 +1,81 @@
|
|||
/*
|
||||
* File: mcf52xx.c
|
||||
* Purpose: Source to select CF derivative
|
||||
*
|
||||
* Notes:
|
||||
*
|
||||
* License: All software covered by license agreement in -
|
||||
* docs/Freescale_Software_License.pdf
|
||||
*/
|
||||
/********************************************************************/
|
||||
|
||||
#include "common.h"
|
||||
|
||||
/********************************************************************/
|
||||
/*
|
||||
* Pause for the specified number of micro-seconds.
|
||||
* Uses DTIM3 as a timer
|
||||
*/
|
||||
void
|
||||
cpu_pause(int usecs)
|
||||
{
|
||||
/* Enable the DMA Timer 3 */
|
||||
MCF_DTIM3_DTRR = (vuint32)(usecs - 1);
|
||||
MCF_DTIM3_DTER = MCF_DTIM_DTER_REF;
|
||||
MCF_DTIM3_DTMR = 0
|
||||
| MCF_DTIM_DTMR_PS(SYSTEM_CLOCK)
|
||||
| MCF_DTIM_DTMR_FRR
|
||||
| MCF_DTIM_DTMR_CLK_DIV1
|
||||
| MCF_DTIM_DTMR_RST;
|
||||
|
||||
while ((MCF_DTIM3_DTER & MCF_DTIM_DTER_REF) == 0)
|
||||
{};
|
||||
|
||||
/* Disable the timer */
|
||||
MCF_DTIM3_DTMR = 0;
|
||||
}
|
||||
|
||||
/********************************************************************/
|
||||
void
|
||||
board_handle_interrupt (int vector)
|
||||
{
|
||||
switch (vector)
|
||||
{
|
||||
case 65: /* Eport Interrupt 1 */
|
||||
printf("SW2\n");
|
||||
MCF_EPORT_EPFR = MCF_EPORT_EPFR_EPF1;
|
||||
break;
|
||||
case 69: /* Eport Interrupt 5 */
|
||||
printf("SW1\n");
|
||||
MCF_EPORT_EPFR = MCF_EPORT_EPFR_EPF5;
|
||||
break;
|
||||
case 71: /* Eport Interrupt 7 */
|
||||
printf("ABORT\n");
|
||||
MCF_EPORT_EPFR = MCF_EPORT_EPFR_EPF7;
|
||||
break;
|
||||
case 66: /* Eport Interrupt 2 */
|
||||
case 67: /* Eport Interrupt 3 */
|
||||
case 68: /* Eport Interrupt 4 */
|
||||
case 70: /* Eport Interrupt 6 */
|
||||
default:
|
||||
MCF_EPORT_EPFR = (uint8)(0x01 << (vector - 64));
|
||||
printf("Edge Port Interrupt #%d\n",vector - 64);
|
||||
break;
|
||||
}
|
||||
}
|
||||
/********************************************************************/
|
||||
|
||||
/********************************************************************/
|
||||
void
|
||||
cpu_handle_interrupt (int vector)
|
||||
{
|
||||
if (vector < 64 || vector > 192)
|
||||
return;
|
||||
|
||||
if (vector >= 64 && vector <= 71)
|
||||
board_handle_interrupt(vector);
|
||||
else
|
||||
printf("User Defined Vector #%d\n",vector);
|
||||
}
|
||||
/********************************************************************/
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue