// Included Files
#include "board.h"
#include <stdio.h>

void abc(void);
static uint32_t static_func(uint32_t a);
static uint32_t static_func_02(uint32_t a);
uint32_t pub_func(uint32_t a);

static uint32_t static_func(uint32_t a)
{
    uint32_t index = 0U;
    return (a+index++);
}
static uint32_t static_func_02(uint32_t a)
{
    uint32_t index = 0U;
    return (a+index++);
}
uint32_t pub_func(uint32_t a)
{
    uint32_t index = 0U;
    return (a+index++);
}

void abc(void)
{
    asm volatile(" MV D0, #0x5a");
    asm volatile(" CALL static_func");
//    static_func(0x5a);
    static_func_02(0x5a);
    asm volatile(" MV D0, #0x5a");
    asm volatile(" CALL pub_func");
    asm volatile(" MV D0, #0x68");
    asm volatile(" LB @(pub_func)");
}

//
// Main
//
int main(void)
{
    Device_init();
    Board_init();

    asm volatile(" MV D0, #0x5a");
    asm volatile(" CALL static_func");
//    static_func(0x5a);
    static_func_02(0x5a);
    asm volatile(" MV D0, #0x5a");
    asm volatile(" CALL pub_func");
    asm volatile(" MV D0, #0x68");
    asm volatile(" LB @(pub_func)");


    while(1);
}

/*
void abc(void)
{
    asm volatile(" MV D0, #0x5a");
    asm volatile(" CALL static_func");
//    static_func(0x5a);
    static_func_02(0x5a);
    asm volatile(" MV D0, #0x5a");
    asm volatile(" CALL pub_func");
    asm volatile(" MV D0, #0x68");
    asm volatile(" LB @(pub_func)");
}
*/
//
// End of File
//
