mirror of
https://github.com/oopuuu/zTC1.git
synced 2025-12-17 23:48:13 +08:00
326 lines
16 KiB
C
326 lines
16 KiB
C
#include "debug.h"
|
|
#include "common.h"
|
|
#include "moc_api.h"
|
|
#include "moc_api_sep.h"
|
|
|
|
static kernel_api_t _kernel_api;
|
|
|
|
static mico_system_config_t* _system_config_get( void )
|
|
{
|
|
static mico_system_config_t cfg;
|
|
// _kernel_api.os_apis->system_config(0, &cfg);
|
|
printf("config get\r\n");
|
|
return &cfg;
|
|
}
|
|
|
|
static void _system_config_set( mico_system_config_t *cfg )
|
|
{
|
|
//_kernel_api.os_apis->system_config(1, cfg);
|
|
printf("config set");
|
|
}
|
|
|
|
#ifndef MICO_DISABLE_STDIO
|
|
|
|
#ifndef STDIO_BUFFER_SIZE
|
|
#define STDIO_BUFFER_SIZE 64
|
|
#endif
|
|
|
|
static const platform_uart_config_t stdio_uart_config =
|
|
{
|
|
.baud_rate = STDIO_UART_BAUDRATE,
|
|
.data_width = DATA_WIDTH_8BIT,
|
|
.parity = NO_PARITY,
|
|
.stop_bits = STOP_BITS_1,
|
|
.flow_control = FLOW_CONTROL_DISABLED,
|
|
.flags = 0,
|
|
};
|
|
|
|
static volatile ring_buffer_t stdio_rx_buffer;
|
|
static volatile uint8_t stdio_rx_data[STDIO_BUFFER_SIZE];
|
|
|
|
void init_debug_uart(void)
|
|
{
|
|
ring_buffer_init( (ring_buffer_t*) &stdio_rx_buffer, (uint8_t*) stdio_rx_data, STDIO_BUFFER_SIZE );
|
|
MicoUartInitialize(STDIO_UART, &stdio_uart_config,
|
|
(ring_buffer_t*) &stdio_rx_buffer );
|
|
}
|
|
#else
|
|
void init_debug_uart(void)
|
|
{
|
|
return;
|
|
}
|
|
#endif
|
|
|
|
mico_api_t *moc_adapter(new_mico_api_t *new_mico_api)
|
|
{
|
|
static mico_api_t mico_api;
|
|
new_mico_api->mico_api_get(API_VERSION_V1, &_kernel_api);
|
|
|
|
/* automatically generated by python script */
|
|
mico_api.library_version = new_mico_api->library_version;
|
|
|
|
mico_api.system_config_get = _system_config_get;
|
|
mico_api.system_config_set = _system_config_set;
|
|
mico_api.mxchipInit = (void(*)())_kernel_api.os_apis->mxchipInit;
|
|
|
|
mico_api.mico_rtos_create_thread = (int (*)(void **, uint8_t, char const *, void (*)(uint32_t), uint32_t, void *))_kernel_api.os_apis->mico_rtos_create_thread;
|
|
mico_api.mico_rtos_delete_thread = _kernel_api.os_apis->mico_rtos_delete_thread;
|
|
mico_api.mico_rtos_suspend_thread = _kernel_api.os_apis->mico_rtos_suspend_thread;
|
|
mico_api.mico_rtos_suspend_all_thread = _kernel_api.os_apis->mico_rtos_suspend_all_thread;
|
|
mico_api.mico_rtos_resume_all_thread = (long(*)(void))_kernel_api.os_apis->mico_rtos_resume_all_thread;
|
|
mico_api.mico_rtos_thread_join = _kernel_api.os_apis->mico_rtos_thread_join;
|
|
mico_api.mico_rtos_thread_force_awake = _kernel_api.os_apis->mico_rtos_thread_force_awake;
|
|
mico_api.mico_rtos_is_current_thread = _kernel_api.os_apis->mico_rtos_is_current_thread;
|
|
mico_api.mico_thread_sleep = _kernel_api.os_apis->mico_thread_sleep;
|
|
mico_api.mico_thread_msleep = _kernel_api.os_apis->mico_thread_msleep;
|
|
mico_api.mico_rtos_init_semaphore = _kernel_api.os_apis->mico_rtos_init_semaphore;
|
|
mico_api.mico_rtos_set_semaphore = _kernel_api.os_apis->mico_rtos_set_semaphore;
|
|
mico_api.mico_rtos_get_semaphore = _kernel_api.os_apis->mico_rtos_get_semaphore;
|
|
mico_api.mico_rtos_deinit_semaphore = _kernel_api.os_apis->mico_rtos_deinit_semaphore;
|
|
mico_api.mico_rtos_init_mutex = _kernel_api.os_apis->mico_rtos_init_mutex;
|
|
mico_api.mico_rtos_lock_mutex = _kernel_api.os_apis->mico_rtos_lock_mutex;
|
|
mico_api.mico_rtos_unlock_mutex = _kernel_api.os_apis->mico_rtos_unlock_mutex;
|
|
mico_api.mico_rtos_deinit_mutex = _kernel_api.os_apis->mico_rtos_deinit_mutex;
|
|
mico_api.mico_rtos_init_queue = _kernel_api.os_apis->mico_rtos_init_queue;
|
|
mico_api.mico_rtos_push_to_queue = _kernel_api.os_apis->mico_rtos_push_to_queue;
|
|
mico_api.mico_rtos_pop_from_queue = _kernel_api.os_apis->mico_rtos_pop_from_queue;
|
|
mico_api.mico_rtos_deinit_queue = _kernel_api.os_apis->mico_rtos_deinit_queue;
|
|
mico_api.mico_rtos_is_queue_empty = _kernel_api.os_apis->mico_rtos_is_queue_empty;
|
|
mico_api.mico_rtos_is_queue_full = (int (*)(void * *))_kernel_api.os_apis->mico_rtos_is_queue_full;
|
|
mico_api.mico_get_time = _kernel_api.os_apis->mico_get_time;
|
|
mico_api.mico_init_timer = _kernel_api.os_apis->mico_init_timer;
|
|
mico_api.mico_start_timer = _kernel_api.os_apis->mico_start_timer;
|
|
mico_api.mico_stop_timer = _kernel_api.os_apis->mico_stop_timer;
|
|
mico_api.mico_reload_timer = _kernel_api.os_apis->mico_reload_timer;
|
|
mico_api.mico_deinit_timer = _kernel_api.os_apis->mico_deinit_timer;
|
|
mico_api.mico_is_timer_running = _kernel_api.os_apis->mico_is_timer_running;
|
|
mico_api.mico_create_event_fd = _kernel_api.os_apis->mico_create_event_fd;
|
|
mico_api.mico_delete_event_fd = _kernel_api.os_apis->mico_delete_event_fd;
|
|
mico_api.SetTimer = NULL;
|
|
mico_api.SetTimer_uniq = NULL;
|
|
mico_api.UnSetTimer = NULL;
|
|
mico_api.mico_memory_info = (micoMemInfo_t* (*)( void ))_kernel_api.os_apis->mico_memory_info;
|
|
mico_api.malloc = _kernel_api.os_apis->malloc;
|
|
mico_api.realloc = _kernel_api.os_apis->realloc;
|
|
mico_api.free = _kernel_api.os_apis->free;
|
|
mico_api.calloc = (void *(*)(int, int))_kernel_api.os_apis->calloc;
|
|
mico_api.heap_insert = _kernel_api.os_apis->heap_insert;
|
|
|
|
mico_api.socket = NULL;
|
|
mico_api.setsockopt = NULL;
|
|
mico_api.getsockopt = NULL;
|
|
mico_api.bind = NULL;
|
|
mico_api.connect = NULL;
|
|
mico_api.listen = NULL;
|
|
mico_api.accept = NULL;
|
|
mico_api.select = NULL;
|
|
mico_api.send = NULL;
|
|
mico_api.write = NULL;
|
|
mico_api.sendto = NULL;
|
|
mico_api.recv = NULL;
|
|
mico_api.read = NULL;
|
|
mico_api.recvfrom = NULL;
|
|
mico_api.close = NULL;
|
|
mico_api.inet_addr = NULL;
|
|
mico_api.inet_ntoa = NULL;
|
|
mico_api.gethostbyname = NULL;
|
|
mico_api.set_tcp_keepalive = NULL;
|
|
mico_api.get_tcp_keepalive = NULL;
|
|
|
|
mico_api.lwip_apis = _kernel_api.lwip_apis;
|
|
|
|
mico_api.ssl_set_cert = _kernel_api.ssl_crypto_apis->ssl_set_cert;
|
|
mico_api.ssl_connect = _kernel_api.ssl_crypto_apis->ssl_connect;
|
|
mico_api.ssl_accept = _kernel_api.ssl_crypto_apis->ssl_accept;
|
|
mico_api.ssl_send = _kernel_api.ssl_crypto_apis->ssl_send;
|
|
mico_api.ssl_recv = _kernel_api.ssl_crypto_apis->ssl_recv;
|
|
mico_api.ssl_close = _kernel_api.ssl_crypto_apis->ssl_close;
|
|
mico_api.set_ssl_client_version = _kernel_api.ssl_crypto_apis->set_ssl_client_version;
|
|
mico_api.ssl_nonblock_connect = _kernel_api.ssl_crypto_apis->ssl_nonblock_connect;
|
|
mico_api.ssl_set_using_nonblock = _kernel_api.ssl_crypto_apis->ssl_set_using_nonblock;
|
|
mico_api.ssl_pending = _kernel_api.ssl_crypto_apis->ssl_pending;
|
|
mico_api.ssl_get_error = _kernel_api.ssl_crypto_apis->ssl_get_error;
|
|
mico_api.ssl_set_client_cert = _kernel_api.ssl_crypto_apis->ssl_set_client_cert;
|
|
mico_api.ssl_connect_sni = _kernel_api.ssl_crypto_apis->ssl_connect_sni;
|
|
|
|
mico_api.InitMd5 = (void (*)(md5_context*))_kernel_api.ssl_crypto_apis->InitMd5;
|
|
mico_api.Md5Update = (void (*)(md5_context*,unsigned char*, int))_kernel_api.ssl_crypto_apis->Md5Update;
|
|
mico_api.Md5Final = (void (*)(md5_context*,uint8_t*))_kernel_api.ssl_crypto_apis->Md5Final;
|
|
mico_api.Md5Hash = _kernel_api.ssl_crypto_apis->Md5Hash;
|
|
mico_api.AesEncryptDirect = _kernel_api.ssl_crypto_apis->AesEncryptDirect;
|
|
mico_api.AesDecryptDirect = _kernel_api.ssl_crypto_apis->AesDecryptDirect;
|
|
mico_api.AesSetKeyDirect = _kernel_api.ssl_crypto_apis->AesSetKeyDirect;
|
|
mico_api.aes_encrypt = _kernel_api.ssl_crypto_apis->aes_encrypt;
|
|
mico_api.aes_decrypt = _kernel_api.ssl_crypto_apis->aes_decrypt;
|
|
mico_api.AesSetKey = _kernel_api.ssl_crypto_apis->AesSetKey;
|
|
mico_api.AesSetIV = _kernel_api.ssl_crypto_apis->AesSetIV;
|
|
mico_api.AesCbcEncrypt = _kernel_api.ssl_crypto_apis->AesCbcEncrypt;
|
|
mico_api.AesCbcDecrypt = _kernel_api.ssl_crypto_apis->AesCbcDecrypt;
|
|
|
|
mico_api.wlan_get_mac_address = _kernel_api.wifi_apis->wlan_get_mac_address;
|
|
mico_api.wlan_get_mac_address_by_interface = _kernel_api.wifi_apis->wlan_get_mac_address_by_interface;
|
|
mico_api.mico_wlan_get_channel = _kernel_api.wifi_apis->mico_wlan_get_channel;
|
|
mico_api.wlan_driver_version = _kernel_api.wifi_apis->wlan_driver_version;
|
|
mico_api.micoWlanStart = _kernel_api.wifi_apis->micoWlanStart;
|
|
mico_api.micoWlanStartAdv = _kernel_api.wifi_apis->micoWlanStartAdv;
|
|
mico_api.micoWlanGetIPStatus = _kernel_api.wifi_apis->micoWlanGetIPStatus;
|
|
mico_api.micoWlanGetLinkStatus = _kernel_api.wifi_apis->micoWlanGetLinkStatus;
|
|
mico_api.micoWlanStartScan = (int(*)(void))_kernel_api.wifi_apis->micoWlanStartScan;
|
|
mico_api.micoWlanStartScanAdv = (int(*)(void))_kernel_api.wifi_apis->micoWlanStartScanAdv;
|
|
mico_api.micoWlanPowerOff = _kernel_api.wifi_apis->micoWlanPowerOff;
|
|
mico_api.micoWlanPowerOn = _kernel_api.wifi_apis->micoWlanPowerOn;
|
|
mico_api.micoWlanSuspend = _kernel_api.wifi_apis->micoWlanSuspend;
|
|
mico_api.micoWlanSuspendStation = _kernel_api.wifi_apis->micoWlanSuspendStation;
|
|
mico_api.micoWlanSuspendSoftAP = _kernel_api.wifi_apis->micoWlanSuspendSoftAP;
|
|
mico_api.micoWlanStartEasyLink = _kernel_api.wifi_apis->micoWlanStartEasyLink;
|
|
mico_api.micoWlanStartEasyLinkPlus = _kernel_api.wifi_apis->micoWlanStartEasyLink;
|
|
mico_api.micoWlanStopEasyLink = _kernel_api.wifi_apis->micoWlanStopEasyLink;
|
|
mico_api.micoWlanStopEasyLinkPlus = _kernel_api.wifi_apis->micoWlanStopEasyLink;
|
|
mico_api.micoWlanStartWPS = NULL;
|
|
mico_api.micoWlanStopWPS = NULL;
|
|
mico_api.micoWlanStartAirkiss = _kernel_api.wifi_apis->micoWlanStartEasyLink;
|
|
mico_api.micoWlanStopAirkiss = _kernel_api.wifi_apis->micoWlanStopEasyLink;
|
|
mico_api.micoWlanEnablePowerSave = _kernel_api.wifi_apis->micoWlanEnablePowerSave;
|
|
mico_api.micoWlanDisablePowerSave = _kernel_api.wifi_apis->micoWlanDisablePowerSave;
|
|
mico_api.wifimgr_debug_enable = _kernel_api.wifi_apis->wifimgr_debug_enable;
|
|
mico_api.mico_wlan_monitor_rx_type = _kernel_api.wifi_apis->mico_wlan_monitor_rx_type;
|
|
mico_api.mico_wlan_start_monitor = _kernel_api.wifi_apis->mico_wlan_start_monitor;
|
|
mico_api.mico_wlan_stop_monitor = _kernel_api.wifi_apis->mico_wlan_stop_monitor;
|
|
mico_api.mico_wlan_set_channel = _kernel_api.wifi_apis->mico_wlan_set_channel;
|
|
mico_api.mico_wlan_register_monitor_cb = _kernel_api.wifi_apis->mico_wlan_register_monitor_cb;
|
|
mico_api.wlan_set_channel = _kernel_api.wifi_apis->wlan_set_channel;
|
|
mico_api.mxchip_active_scan = _kernel_api.wifi_apis->mxchip_active_scan;
|
|
mico_api.wifi_manage_custom_ie_add = _kernel_api.wifi_apis->wifi_manage_custom_ie_add;
|
|
mico_api.wifi_manage_custom_ie_delete = _kernel_api.wifi_apis->wifi_manage_custom_ie_delete;
|
|
|
|
mico_api.cli_init = _kernel_api.cli_apis->cli_init;
|
|
mico_api.cli_register_command = _kernel_api.cli_apis->cli_register_command;
|
|
mico_api.cli_unregister_command = _kernel_api.cli_apis->cli_unregister_command;
|
|
mico_api.wifistate_Command = _kernel_api.cli_apis->wifistate_Command;
|
|
mico_api.wifidebug_Command = _kernel_api.cli_apis->wifidebug_Command;
|
|
mico_api.wifiscan_Command = _kernel_api.cli_apis->wifiscan_Command;
|
|
mico_api.ifconfig_Command = _kernel_api.cli_apis->ifconfig_Command;
|
|
mico_api.arp_Command = _kernel_api.cli_apis->arp_Command;
|
|
mico_api.ping_Command = _kernel_api.cli_apis->ping_Command;
|
|
mico_api.dns_Command = _kernel_api.cli_apis->dns_Command;
|
|
mico_api.task_Command = _kernel_api.cli_apis->task_Command;
|
|
mico_api.socket_show_Command = _kernel_api.cli_apis->socket_show_Command;
|
|
mico_api.memory_show_Command = _kernel_api.cli_apis->memory_show_Command;
|
|
mico_api.memory_dump_Command = _kernel_api.cli_apis->memory_dump_Command;
|
|
mico_api.memory_set_Command = _kernel_api.cli_apis->memory_set_Command;
|
|
mico_api.memp_dump_Command = _kernel_api.cli_apis->memp_dump_Command;
|
|
mico_api.driver_state_Command = _kernel_api.cli_apis->driver_state_Command;
|
|
mico_api.iperf_Command = _kernel_api.cli_apis->iperf_Command;
|
|
|
|
mico_api.MicoFlashGetInfo = _kernel_api.flash_apis->MicoFlashGetInfo;
|
|
mico_api.MicoFlashErase = _kernel_api.flash_apis->MicoFlashErase;
|
|
mico_api.MicoFlashWrite = _kernel_api.flash_apis->MicoFlashWrite;
|
|
mico_api.MicoFlashRead = _kernel_api.flash_apis->MicoFlashRead;
|
|
mico_api.MicoFlashEnableSecurity = _kernel_api.flash_apis->MicoFlashEnableSecurity;
|
|
mico_api.MicoGpioInitialize = _kernel_api.gpio_apis->MicoGpioInitialize;
|
|
mico_api.MicoGpioFinalize = _kernel_api.gpio_apis->MicoGpioFinalize;
|
|
mico_api.MicoGpioOutputHigh = _kernel_api.gpio_apis->MicoGpioOutputHigh;
|
|
mico_api.MicoGpioOutputLow = _kernel_api.gpio_apis->MicoGpioOutputLow;
|
|
mico_api.MicoGpioOutputTrigger = _kernel_api.gpio_apis->MicoGpioOutputTrigger;
|
|
mico_api.MicoGpioInputGet = _kernel_api.gpio_apis->MicoGpioInputGet;
|
|
mico_api.MicoGpioEnableIRQ = _kernel_api.gpio_apis->MicoGpioEnableIRQ;
|
|
mico_api.MicoGpioDisableIRQ = _kernel_api.gpio_apis->MicoGpioDisableIRQ;
|
|
mico_api.MicoUartInitialize = _kernel_api.uart_apis->MicoUartInitialize;
|
|
mico_api.MicoUartFinalize = _kernel_api.uart_apis->MicoUartFinalize;
|
|
mico_api.MicoUartSend = _kernel_api.uart_apis->MicoUartSend;
|
|
mico_api.MicoUartRecv = _kernel_api.uart_apis->MicoUartRecv;
|
|
mico_api.MicoUartGetLengthInBuffer = _kernel_api.uart_apis->MicoUartGetLengthInBuffer;
|
|
mico_api.MicoUartPinRedirect = _kernel_api.uart_apis->MicoUartPinRedirect;
|
|
|
|
mico_api.pm_mcu_state = _kernel_api.ps_apis->pm_mcu_state;
|
|
mico_api.pm_wakeup_source = _kernel_api.ps_apis->pm_wakeup_source;
|
|
mico_api.wifi_off_mcu_standby = (void(*)(int))(_kernel_api.ps_apis->wifi_off_mcu_standby);
|
|
mico_api.MicoMcuPowerSaveConfig = _kernel_api.ps_apis->MicoMcuPowerSaveConfig;
|
|
mico_api.debug_putchar = _kernel_api.os_apis->debug_putchar;
|
|
mico_api.MicoSystemReboot = _kernel_api.os_apis->MicoSystemReboot;
|
|
mico_api.get_ali_key = NULL;
|
|
mico_api.get_ali_secret = NULL;
|
|
mico_api.MicoRtcInitialize = _kernel_api.rtc_apis->MicoRtcInitialize;
|
|
mico_api.MicoRtcGetTime = _kernel_api.rtc_apis->MicoRtcGetTime;
|
|
mico_api.MicoRtcSetTime = _kernel_api.rtc_apis->MicoRtcSetTime;
|
|
mico_api.localtime = _kernel_api.os_apis->localtime;
|
|
mico_api.asctime = _kernel_api.os_apis->asctime;
|
|
mico_api.wifi_set_country = _kernel_api.wifi_apis->wifi_set_country;
|
|
mico_api.switch_active_firmrware = NULL;
|
|
mico_api.last_reset_reason = _kernel_api.os_apis->last_reset_reason;
|
|
mico_api.aon_write = _kernel_api.os_apis->aon_write;
|
|
mico_api.aon_read = _kernel_api.os_apis->aon_read;
|
|
mico_api.ssl_get_fd = _kernel_api.ssl_crypto_apis->ssl_get_fd;
|
|
mico_api.get_random_sequence = _kernel_api.os_apis->get_random_sequence;
|
|
mico_api.ssl_set_loggingcb = _kernel_api.ssl_crypto_apis->ssl_loggingcb;
|
|
mico_api.wlan_inject_frame = _kernel_api.wifi_apis->wlan_inject_frame;
|
|
mico_api.wlan_rx_mgmt_indication = NULL;
|
|
mico_api.wlan_remain_on_channel = NULL;
|
|
mico_api.wifi_bridge_mode_enable = NULL;
|
|
mico_api.wifi_bridge_mode_disable = NULL;
|
|
mico_api.send_easylink_minus = _kernel_api.wifi_apis->send_easylink_minus;
|
|
mico_api.ssl_socket = (int(*)(void*))(_kernel_api.ssl_crypto_apis->ssl_get_fd);
|
|
|
|
mico_api.i2c_apis = _kernel_api.i2c_apis;
|
|
mico_api.spi_apis = _kernel_api.spi_apis;
|
|
mico_api.pwm_apis = _kernel_api.pwm_apis;
|
|
mico_api.wdg_apis = _kernel_api.wdg_apis;
|
|
mico_api.adc_apis = _kernel_api.adc_apis;
|
|
mico_api.gtimer_apis = _kernel_api.gtimer_apis;
|
|
|
|
return &mico_api;
|
|
}
|
|
|
|
int debug_putchar(char *ch, int len)
|
|
{
|
|
return _kernel_api.os_apis->debug_putchar(ch, len);
|
|
}
|
|
|
|
int debug_gettchar(char *ch)
|
|
{
|
|
return _kernel_api.os_apis->debug_getchar(ch);
|
|
}
|
|
|
|
int mico_wlan_monitor_no_easylink(void)
|
|
{
|
|
return _kernel_api.wifi_apis->mico_wlan_monitor_no_easylink();
|
|
}
|
|
|
|
int wlan_rx_mgnt_set(int enable, mgnt_handler_t cb)
|
|
{
|
|
return _kernel_api.wifi_apis->wlan_rx_mgnt_set(enable, cb);
|
|
}
|
|
|
|
void autoconfig_start(int seconds, int mode)
|
|
{
|
|
_kernel_api.wifi_apis->autoconfig_start(seconds, mode);
|
|
}
|
|
|
|
void wlan_set_softap_tdma(int value)
|
|
{
|
|
_kernel_api.wifi_apis->wlan_set_softap_tdma(value);
|
|
}
|
|
|
|
int wifi_off_fastly(void)
|
|
{
|
|
return _kernel_api.wifi_apis->wifi_off_fastly();
|
|
}
|
|
|
|
int OpenEasylink_softap(int timeout, char *ssid, char*key, int channel)
|
|
{
|
|
return _kernel_api.wifi_apis->OpenEasylink_softap(timeout, ssid, key, channel);
|
|
}
|
|
|
|
void ssl_set_ecc(int enable)
|
|
{
|
|
_kernel_api.ssl_crypto_apis->ssl_set_ecc(enable);
|
|
}
|
|
|
|
/* return 1=success; 0=fail*/
|
|
int disable_log_uart(void)
|
|
{
|
|
return _kernel_api.uart_apis->disable_log_uart();
|
|
}
|
|
|
|
|