#ifndef IDE_TEST
/******************************************************************
 * @file  Ucp_Ape0_Init.s.c
 * @brief:    [file description] 
 * @author: guicheng.liu
 * @Date 2022年1月25日
 * COPYRIGHT NOTICE: (c) smartlogictech. All rights reserved. 
 * Change_date         Owner         Change_content
 * 2022年1月25日        guicheng.liu       create file

*****************************************************************/

/**************************include******************************/
#include <type_define.h>

#include "ape_common.h"
#include "task_define.h"
#include "log_interface.h"
#include "Frame_test.h"
#include "receiver_sync_func.h"
#include "trace.h"
#include "Fucp_Ape4_pcie_testcase.h"


/**************************function******************************/
/*************************************************************************/
/* 收到消息后创建任务 */
void ape4_event_task(uint32_t addr, uint32_t size)
{
    uint32_t ape_id = get_core_id();

    osp_task_info_ex mgr_task2 =
      {PHY_TASK_RECIEVER_SYNC, "Receiver_Sync", PHY_TASK_PRI_RECEIVER_SYNC, 2048, OSP_TIMER_TYPE, 0x000, 0x3FF, 50, (OSP_TASKINIT_FUNC)Receiver_Sync_Init, (OSP_TASKENTRY_FUNC)Receiver_Sync_Task};
    osp_task_info_ex mgr_task3 =
          {PHY_TASK_TEST, "Test_Task", PHY_TASK_PRI_TEST, 4096, OSP_TIMER_TYPE, 0x000, 0x3FF, 50, NULL, (OSP_TASKENTRY_FUNC)Test_Task};   
    osp_task_info_ex pcie_normal_task_info  = {PCIE_TASK_RECEIVER, (int8_t*)"pcie_normal_task", PCIE_TASK_PRI_RECEIVER, 4096, OSP_NORMAL_TYPE, 1, 0, 0, NULL, (OSP_TASKENTRY_FUNC)pcie_test_task_func};
         

   TRACE(TRACE_RECV_INIT_ADDR, 2, 1);

   osp_task_create(&mgr_task2);
   test_case_cfgpar_pcie();

   osp_task_create(&pcie_normal_task_info);
   TRACE(TRACE_RECV_INIT_ADDR, 3, 1);
    LOG_INFO_S("APE4 finish task create!\n");

   osp_timer_sync(1);
   TRACE(TRACE_RECV_INIT_ADDR, 4, 1);
   return;
}

/* 收到消息后删除任务 */
void ape4_event_task_del(uint32_t addr, uint32_t size)
{
    uint32_t ape_id = get_core_id();
    //osp_del_task_all(NR_SCS_30K);


    return;
}


/*!   
* @brief:  在Phy init的时候注册物理层管理任务
* @author:  guicheng.liu
* @Date:  2022年2月28日
*/
void Phy_Task_Ape4_Reg()
{
    osp_task_info_ex ape4_event_task_info = {50, "ape4_event_task1", 50, 2048, OSP_EVENT_TYPE, 0, 0, 0, NULL, (OSP_TASKENTRY_FUNC)ape4_event_task};
    osp_task_info_ex ape4_event_task_info_del = {51, "ape4_event_task_del1", 51, 2048, OSP_EVENT_TYPE, 0, 0, 0, NULL, (OSP_TASKENTRY_FUNC)ape4_event_task_del};

	

    osp_task_create(&ape4_event_task_info);
    osp_task_create(&ape4_event_task_info_del);

    return ;



}


/*!   
* @brief:  Phy初始化函数, 每个APE上都需要有一个名字相同的函数
* @author:  guicheng.liu
* @Date:  2022年1月25日
*/
void phy_init()
{
   TRACE(TRACE_RECV_INIT_ADDR, 1, 1);
   // //初始化函数里面尽量不要输出log，因为可能初始化时msg_transfer_open还未完成
   log_level_e log_level = INFO;
   log_pool_init();
   set_log_level(log_level);

	//memset(&g_phy_cell_cfg, 0, sizeof(phy_cell_cfg_t));

   Phy_Task_Ape4_Reg();
   TRACE(TRACE_RECV_INIT_ADDR, 5, 1);
}

/*!   
* @brief:  初始化时钟
* @author:  guicheng.liu
* @Date:  2022年11月3日
*/
// void soc_drv_init()
// {
//    SET_CLK_CFG_EMU();//八个核中的一个核调用
//    phy_para_init(0, 0);//八个核中的一个核调用
//    ecs_sram_init();//八个核中的一个核调用
//    ape_stc_init();//八个核中的一个核调用
// }

// /*!   
// * @brief:  初始化stc timer等
// * @author:  guicheng.liu
// * @Date:  2022年11月3日
// */
// void tod_int_init()
// {
//    stc_timer_todint_init();//八个核中的一个核调用
// }
#endif
