mirror of
https://gitee.com/Lyon1998/pikapython.git
synced 2025-01-29 17:22:56 +08:00
add ch582 support package
This commit is contained in:
parent
f60625c888
commit
7cdb0cf9ed
93
package/CH582/CH582.py
Normal file
93
package/CH582/CH582.py
Normal file
@ -0,0 +1,93 @@
|
||||
from PikaObj import *
|
||||
import PikaStdDevice
|
||||
import PikaStdTask
|
||||
|
||||
|
||||
class GPIO(PikaStdDevice.GPIO):
|
||||
# override
|
||||
def platformHigh():
|
||||
pass
|
||||
|
||||
# override
|
||||
def platformLow():
|
||||
pass
|
||||
|
||||
# override
|
||||
def platformEnable():
|
||||
pass
|
||||
|
||||
# override
|
||||
def platformDisable():
|
||||
pass
|
||||
|
||||
# override
|
||||
def platformSetMode():
|
||||
pass
|
||||
|
||||
# override
|
||||
def platformRead():
|
||||
pass
|
||||
|
||||
|
||||
class Time(PikaStdDevice.Time):
|
||||
# override
|
||||
def sleep_s(s: int):
|
||||
pass
|
||||
|
||||
# override
|
||||
def sleep_ms(ms: int):
|
||||
pass
|
||||
|
||||
|
||||
class ADC(PikaStdDevice.ADC):
|
||||
# override
|
||||
def platformEnable():
|
||||
pass
|
||||
|
||||
# override
|
||||
def platformRead():
|
||||
pass
|
||||
|
||||
# override
|
||||
def platformDisable():
|
||||
pass
|
||||
|
||||
|
||||
class UART(PikaStdDevice.UART):
|
||||
# override
|
||||
def platformEnable():
|
||||
pass
|
||||
|
||||
# override
|
||||
def platformWrite():
|
||||
pass
|
||||
|
||||
# override
|
||||
def platformRead():
|
||||
pass
|
||||
|
||||
# override
|
||||
def platformDisable():
|
||||
pass
|
||||
|
||||
|
||||
class IIC(PikaStdDevice.IIC):
|
||||
SCL = GPIO()
|
||||
SDA = GPIO()
|
||||
# override
|
||||
|
||||
def platformEnable():
|
||||
pass
|
||||
|
||||
# override
|
||||
def platformDisable():
|
||||
pass
|
||||
|
||||
# override
|
||||
def platformWrite():
|
||||
pass
|
||||
|
||||
# override
|
||||
def platformRead():
|
||||
pass
|
||||
|
109
package/CH582/ch582_adc.c
Normal file
109
package/CH582/ch582_adc.c
Normal file
@ -0,0 +1,109 @@
|
||||
#include "CH58x_common.h"
|
||||
#include "CH582_ADC.h"
|
||||
#include "ch582_utils.h"
|
||||
|
||||
|
||||
signed short RoughCalib_Value = 0; // ADC粗调偏差值
|
||||
|
||||
uint32_t adc_get_channle(char *pin)
|
||||
{
|
||||
uint32_t p = gpio_get_pin(pin);
|
||||
switch (p)
|
||||
{
|
||||
case GPIO_Pin_0:
|
||||
return 9;
|
||||
break;
|
||||
case GPIO_Pin_1:
|
||||
return 8;
|
||||
break;
|
||||
case GPIO_Pin_2:
|
||||
return 7;
|
||||
break;
|
||||
case GPIO_Pin_3:
|
||||
return 6;
|
||||
break;
|
||||
case GPIO_Pin_4:
|
||||
return 0;
|
||||
break;
|
||||
case GPIO_Pin_5:
|
||||
return 1;
|
||||
break;
|
||||
case GPIO_Pin_6:
|
||||
return 10;
|
||||
break;
|
||||
case GPIO_Pin_7:
|
||||
return 11;
|
||||
break;
|
||||
case GPIO_Pin_8:
|
||||
return 12;
|
||||
break;
|
||||
case GPIO_Pin_9:
|
||||
return 13;
|
||||
break;
|
||||
case GPIO_Pin_12:
|
||||
return 2;
|
||||
break;
|
||||
case GPIO_Pin_13:
|
||||
return 3;
|
||||
break;
|
||||
case GPIO_Pin_14:
|
||||
return 4;
|
||||
break;
|
||||
case GPIO_Pin_15:
|
||||
return 5;
|
||||
break;
|
||||
default:
|
||||
return -1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void CH582_ADC_platformDisable(PikaObj *self)
|
||||
{
|
||||
char *pin = obj_getStr(self, "pin");
|
||||
|
||||
ADC_ChannelCfg(0b00001111); // 复位channel
|
||||
if (adc_get_channle(pin) < 0) // 判断一下pin是不是合理
|
||||
{
|
||||
obj_setErrorCode(self, 1);
|
||||
obj_setSysOut(self, "[error] not match adc pin.");
|
||||
}
|
||||
else
|
||||
{
|
||||
GPIOA_ModeCfg(gpio_get_pin(pin), GPIO_ModeIN_PU);
|
||||
}
|
||||
}
|
||||
|
||||
void CH582_ADC_platformEnable(PikaObj *self)
|
||||
{
|
||||
char *pin = obj_getStr(self, "pin");
|
||||
|
||||
if (adc_get_channle(pin) < 0) // 判断一下pin是不是合理
|
||||
{
|
||||
obj_setErrorCode(self, 1);
|
||||
obj_setSysOut(self, "[error] not match adc pin.");
|
||||
}
|
||||
else
|
||||
{
|
||||
ADC_ExtSingleChSampInit(SampleFreq_8, ADC_PGA_0);
|
||||
GPIOA_ModeCfg(gpio_get_pin(pin), GPIO_ModeIN_Floating);
|
||||
RoughCalib_Value = ADC_DataCalib_Rough(); // 校准数据
|
||||
}
|
||||
}
|
||||
|
||||
void CH582_ADC_platformRead(PikaObj *self)
|
||||
{
|
||||
char *pin = obj_getStr(self, "pin");
|
||||
|
||||
uint32_t ch = adc_get_channle(pin);
|
||||
if (ch > 0)
|
||||
{
|
||||
ADC_ChannelCfg(ch);
|
||||
obj_setFloat(self, "val", (ADC_ExcutSingleConver() + RoughCalib_Value));
|
||||
}
|
||||
else
|
||||
{
|
||||
obj_setErrorCode(self, 1);
|
||||
obj_setSysOut(self, "[error] not match adc pin.");
|
||||
}
|
||||
}
|
92
package/CH582/ch582_gpio.c
Normal file
92
package/CH582/ch582_gpio.c
Normal file
@ -0,0 +1,92 @@
|
||||
#include "CH58x_common.h"
|
||||
#include "CH582_GPIO.h"
|
||||
#include "ch582_utils.h"
|
||||
|
||||
|
||||
void CH582_GPIO_platformDisable(PikaObj *self)
|
||||
{
|
||||
char *pin = obj_getStr(self, "pin");
|
||||
|
||||
if (gpio_get_group(pin) == 0)
|
||||
{
|
||||
GPIOA_ModeCfg(gpio_get_pin(pin), GPIO_ModeIN_PU);
|
||||
}
|
||||
else
|
||||
{
|
||||
GPIOB_ModeCfg(gpio_get_pin(pin), GPIO_ModeIN_PU);
|
||||
}
|
||||
}
|
||||
|
||||
void CH582_GPIO_platformEnable(PikaObj *self)
|
||||
{
|
||||
char *pin = obj_getStr(self, "pin");
|
||||
char *mode = obj_getStr(self, "mode");
|
||||
char *pull = obj_getStr(self, "pull");
|
||||
GPIOModeTypeDef pmode = gpio_get_mode(mode, pull);
|
||||
|
||||
if (gpio_get_group(pin) == 0)
|
||||
{
|
||||
GPIOA_ModeCfg(gpio_get_pin(pin), pmode);
|
||||
}
|
||||
else
|
||||
{
|
||||
GPIOB_ModeCfg(gpio_get_pin(pin), pmode);
|
||||
}
|
||||
}
|
||||
|
||||
void CH582_GPIO_platformHigh(PikaObj *self)
|
||||
{
|
||||
char *pin = obj_getStr(self, "pin");
|
||||
|
||||
if (gpio_get_group(pin) == 0)
|
||||
{
|
||||
GPIOA_SetBits(gpio_get_pin(pin));
|
||||
}
|
||||
else
|
||||
{
|
||||
GPIOB_SetBits(gpio_get_pin(pin));
|
||||
}
|
||||
}
|
||||
|
||||
void CH582_GPIO_platformLow(PikaObj *self)
|
||||
{
|
||||
char *pin = obj_getStr(self, "pin");
|
||||
|
||||
if (gpio_get_group(pin) == 0)
|
||||
{
|
||||
GPIOA_ResetBits(gpio_get_pin(pin));
|
||||
}
|
||||
else
|
||||
{
|
||||
GPIOB_ResetBits(gpio_get_pin(pin));
|
||||
}
|
||||
}
|
||||
|
||||
void CH582_GPIO_platformRead(PikaObj *self)
|
||||
{
|
||||
char *pin = obj_getStr(self, "pin");
|
||||
if (gpio_get_group(pin) == 0)
|
||||
{
|
||||
obj_setInt(self, "readBuff", GPIOA_ReadPortPin(gpio_get_pin(pin)));
|
||||
}
|
||||
else
|
||||
{
|
||||
obj_setInt(self, "readBuff", GPIOB_ReadPortPin(gpio_get_pin(pin)));
|
||||
}
|
||||
}
|
||||
|
||||
void CH582_GPIO_platformSetMode(PikaObj *self)
|
||||
{
|
||||
char *pin = obj_getStr(self, "pin");
|
||||
char *mode = obj_getStr(self, "mode");
|
||||
GPIOModeTypeDef pmode = gpio_get_mode(mode, NULL);
|
||||
|
||||
if (gpio_get_group(pin) == 0)
|
||||
{
|
||||
GPIOA_ModeCfg(gpio_get_pin(pin), pmode);
|
||||
}
|
||||
else
|
||||
{
|
||||
GPIOB_ModeCfg(gpio_get_pin(pin), pmode);
|
||||
}
|
||||
}
|
78
package/CH582/ch582_iic.c
Normal file
78
package/CH582/ch582_iic.c
Normal file
@ -0,0 +1,78 @@
|
||||
#include "CH58x_common.h"
|
||||
#include "CH582_IIC.h"
|
||||
|
||||
|
||||
void CH582_IIC_platformDisable(PikaObj *self)
|
||||
{
|
||||
I2C_Cmd(DISABLE);
|
||||
}
|
||||
|
||||
void CH582_IIC_platformEnable(PikaObj *self)
|
||||
{
|
||||
uint8_t deviceAddr = obj_getInt(self, "deviceAddr");
|
||||
GPIOB_ModeCfg(GPIO_Pin_13 | GPIO_Pin_12, GPIO_ModeIN_PU);
|
||||
I2C_Init(I2C_Mode_I2C, 100000, I2C_DutyCycle_16_9, I2C_Ack_Enable, I2C_AckAddr_7bit, deviceAddr);
|
||||
I2C_Cmd(ENABLE);
|
||||
}
|
||||
|
||||
void CH582_IIC_platformRead(PikaObj *self)
|
||||
{
|
||||
uint8_t length = obj_getInt(self, "length");
|
||||
uint8_t readAddr = obj_getInt(self, "readAddr");
|
||||
uint8_t i = 0;
|
||||
uint8_t *data = {0};
|
||||
|
||||
I2C_AcknowledgeConfig(ENABLE);
|
||||
I2C_GenerateSTART(ENABLE);
|
||||
while (!I2C_CheckEvent(I2C_EVENT_MASTER_MODE_SELECT))
|
||||
;
|
||||
I2C_Send7bitAddress(readAddr, I2C_Direction_Receiver);
|
||||
while (!I2C_CheckEvent(I2C_EVENT_MASTER_RECEIVER_MODE_SELECTED))
|
||||
;
|
||||
while (i < length)
|
||||
{
|
||||
if (I2C_GetFlagStatus(I2C_FLAG_RXNE) != RESET)
|
||||
{
|
||||
if (i == (length - 2))
|
||||
{
|
||||
I2C_AcknowledgeConfig(DISABLE);
|
||||
data[i] = I2C_ReceiveData(); //读数据,发送nACK
|
||||
}
|
||||
else
|
||||
{
|
||||
data[i] = I2C_ReceiveData(); //读数据,发送ACK
|
||||
}
|
||||
i++;
|
||||
}
|
||||
}
|
||||
I2C_GenerateSTOP(ENABLE);
|
||||
obj_setStr(self, "readData", (char *)data);
|
||||
}
|
||||
|
||||
void CH582_IIC_platformWrite(PikaObj *self)
|
||||
{
|
||||
char *writeData = obj_getStr(self, "writeData");
|
||||
uint8_t writeAddr = obj_getInt(self, "writeAddr");
|
||||
uint8_t i = 0;
|
||||
uint8_t length = strGetSize(writeData);
|
||||
|
||||
while (I2C_GetFlagStatus(I2C_FLAG_BUSY) != RESET)
|
||||
;
|
||||
I2C_GenerateSTART(ENABLE);
|
||||
while (!I2C_CheckEvent(I2C_EVENT_MASTER_MODE_SELECT))
|
||||
;
|
||||
I2C_Send7bitAddress(writeAddr, I2C_Direction_Transmitter);
|
||||
while (!I2C_CheckEvent(I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED))
|
||||
;
|
||||
while (i < length)
|
||||
{
|
||||
if (I2C_GetFlagStatus(I2C_FLAG_TXE) != RESET)
|
||||
{
|
||||
I2C_SendData((uint8_t)writeData[i]);
|
||||
i++;
|
||||
}
|
||||
}
|
||||
while (!I2C_CheckEvent(I2C_EVENT_MASTER_BYTE_TRANSMITTED))
|
||||
;
|
||||
I2C_GenerateSTOP(ENABLE);
|
||||
}
|
34
package/CH582/ch582_time.c
Normal file
34
package/CH582/ch582_time.c
Normal file
@ -0,0 +1,34 @@
|
||||
#include "CH58x_common.h"
|
||||
#include "CH582_Time.h"
|
||||
|
||||
|
||||
void mdelay1ms()
|
||||
{
|
||||
R32_TMR0_CNT_END = (FREQ_SYS / 1000);
|
||||
R8_TMR0_CTRL_MOD = RB_TMR_ALL_CLEAR;
|
||||
R8_TMR0_CTRL_MOD = RB_TMR_COUNT_EN;
|
||||
while ((R8_TMR0_INT_FLAG & TMR0_3_IT_CYC_END) == 0)
|
||||
;
|
||||
R8_TMR0_INT_FLAG = TMR0_3_IT_CYC_END;
|
||||
}
|
||||
|
||||
void mdelaym(uint32_t ms)
|
||||
{
|
||||
for (uint32_t i = 0; i < ms; i++)
|
||||
{
|
||||
mdelay1ms();
|
||||
}
|
||||
}
|
||||
|
||||
void CH582_Time_sleep_ms(PikaObj *self, int ms)
|
||||
{
|
||||
mdelaym(ms);
|
||||
}
|
||||
|
||||
void CH582_Time_sleep_s(PikaObj *self, int s)
|
||||
{
|
||||
for (uint32_t i = 0; i < s; i++)
|
||||
{
|
||||
mdelaym(1000);
|
||||
}
|
||||
}
|
166
package/CH582/ch582_uart.c
Normal file
166
package/CH582/ch582_uart.c
Normal file
@ -0,0 +1,166 @@
|
||||
#include "CH58x_common.h"
|
||||
#include "CH582_UART.h"
|
||||
#include "ch582_utils.h"
|
||||
|
||||
|
||||
void UART0_DeInit(void)
|
||||
{
|
||||
R8_UART0_FCR = 0x0;
|
||||
R8_UART0_LCR = 0x0;
|
||||
R8_UART0_IER = 0x0;
|
||||
}
|
||||
|
||||
void UART1_DeInit(void)
|
||||
{
|
||||
R8_UART1_FCR = 0x0;
|
||||
R8_UART1_LCR = 0x0;
|
||||
R8_UART1_IER = 0x0;
|
||||
}
|
||||
|
||||
void UART2_DeInit(void)
|
||||
{
|
||||
R8_UART2_FCR = 0x0;
|
||||
R8_UART2_LCR = 0x0;
|
||||
R8_UART2_IER = 0x0;
|
||||
}
|
||||
|
||||
void UART3_DeInit(void)
|
||||
{
|
||||
R8_UART3_FCR = 0x0;
|
||||
R8_UART3_LCR = 0x0;
|
||||
R8_UART3_IER = 0x0;
|
||||
}
|
||||
|
||||
void CH582_UART_platformEnable(PikaObj *self)
|
||||
{
|
||||
int id = obj_getInt(self, "id");
|
||||
int baudrate = obj_getInt(self, "baudRate");
|
||||
switch (id)
|
||||
{
|
||||
case 0: // TX0:PB7 RX0:PB4
|
||||
GPIOB_SetBits(GPIO_Pin_7);
|
||||
GPIOB_ModeCfg(GPIO_Pin_4, GPIO_ModeIN_PU);
|
||||
GPIOB_ModeCfg(GPIO_Pin_7, GPIO_ModeOut_PP_5mA);
|
||||
UART0_DefInit();
|
||||
UART0_BaudRateCfg(baudrate);
|
||||
break;
|
||||
case 1: // TX1:PA9 RX1:pa8
|
||||
GPIOA_SetBits(GPIO_Pin_9);
|
||||
GPIOA_ModeCfg(GPIO_Pin_8, GPIO_ModeIN_PU);
|
||||
GPIOA_ModeCfg(GPIO_Pin_9, GPIO_ModeOut_PP_5mA);
|
||||
UART1_DefInit();
|
||||
UART1_BaudRateCfg(baudrate);
|
||||
break;
|
||||
case 2: // TX2:PA7 RX2:PA6
|
||||
GPIOA_SetBits(GPIO_Pin_7);
|
||||
GPIOA_ModeCfg(GPIO_Pin_6, GPIO_ModeIN_PU);
|
||||
GPIOA_ModeCfg(GPIO_Pin_7, GPIO_ModeOut_PP_5mA);
|
||||
UART2_DefInit();
|
||||
UART2_BaudRateCfg(baudrate);
|
||||
break;
|
||||
case 3: // TX3:PA5 RX3:PA4
|
||||
GPIOA_SetBits(GPIO_Pin_5);
|
||||
GPIOA_ModeCfg(GPIO_Pin_4, GPIO_ModeIN_PU);
|
||||
GPIOA_ModeCfg(GPIO_Pin_5, GPIO_ModeOut_PP_5mA);
|
||||
UART3_DefInit();
|
||||
UART3_BaudRateCfg(baudrate);
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void CH582_UART_platformRead(PikaObj *self)
|
||||
{
|
||||
int id = obj_getInt(self, "id");
|
||||
int len = obj_getInt(self, "length");
|
||||
char *readData = NULL;
|
||||
|
||||
switch (id)
|
||||
{
|
||||
case 0:
|
||||
while (len > 0)
|
||||
{
|
||||
*readData++ = R8_UART0_RBR;
|
||||
len--;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
while (len > 0)
|
||||
{
|
||||
*readData++ = R8_UART1_RBR;
|
||||
len--;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
while (len > 0)
|
||||
{
|
||||
*readData++ = R8_UART2_RBR;
|
||||
len--;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
while (len > 0)
|
||||
{
|
||||
*readData++ = R8_UART3_RBR;
|
||||
len--;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
obj_setStr(self, "readData", readData);
|
||||
}
|
||||
|
||||
void CH582_UART_platformWrite(PikaObj *self)
|
||||
{
|
||||
int id = obj_getInt(self, "id");
|
||||
char *data = obj_getStr(self, "data");
|
||||
switch (id)
|
||||
{
|
||||
case 0:
|
||||
UART0_SendString(data, strGetSize(data));
|
||||
break;
|
||||
case 1:
|
||||
UART1_SendString(data, strGetSize(data));
|
||||
break;
|
||||
case 2:
|
||||
UART2_SendString(data, strGetSize(data));
|
||||
break;
|
||||
case 3:
|
||||
UART3_SendString(data, strGetSize(data));
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void CH582_UART_platformDisable(PikaObj *self)
|
||||
{
|
||||
int id = obj_getInt(self, "id");
|
||||
switch (id)
|
||||
{
|
||||
case 0:
|
||||
UART0_DeInit();
|
||||
GPIOB_ModeCfg(GPIO_Pin_4, GPIO_ModeIN_PU);
|
||||
GPIOB_ModeCfg(GPIO_Pin_7, GPIO_ModeIN_PU);
|
||||
break;
|
||||
case 1:
|
||||
UART1_DeInit();
|
||||
GPIOA_ModeCfg(GPIO_Pin_8, GPIO_ModeIN_PU);
|
||||
GPIOA_ModeCfg(GPIO_Pin_9, GPIO_ModeIN_PU);
|
||||
break;
|
||||
case 2:
|
||||
UART2_DeInit();
|
||||
GPIOA_ModeCfg(GPIO_Pin_6, GPIO_ModeIN_PU);
|
||||
GPIOA_ModeCfg(GPIO_Pin_7, GPIO_ModeIN_PU);
|
||||
break;
|
||||
case 3:
|
||||
UART3_DeInit();
|
||||
GPIOA_ModeCfg(GPIO_Pin_4, GPIO_ModeIN_PU);
|
||||
GPIOA_ModeCfg(GPIO_Pin_5, GPIO_ModeIN_PU);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
54
package/CH582/ch582_utils.c
Normal file
54
package/CH582/ch582_utils.c
Normal file
@ -0,0 +1,54 @@
|
||||
#include "CH58x_common.h"
|
||||
#include "ch582_utils.h"
|
||||
#include "string.h"
|
||||
#include "stdint.h"
|
||||
|
||||
uint8_t gpio_get_group(char *pin)
|
||||
{
|
||||
return strncmp(pin, "PA", 2) == 0 ? 0 : 1;
|
||||
}
|
||||
|
||||
uint32_t gpio_get_pin(char *pin)
|
||||
{
|
||||
uint32_t num = 0;
|
||||
if (strlen(pin) == 3)
|
||||
{
|
||||
num = pin[2] - 48;
|
||||
}
|
||||
else if (strlen(pin) > 3 && strlen(pin) < 5)
|
||||
{
|
||||
num = 10 * (pin[2] - 48) + (pin[3] - 48);
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
return (uint32_t)1ull << num;
|
||||
}
|
||||
|
||||
uint32_t gpio_get_mode(char *mode, char *pull)
|
||||
{
|
||||
if (strcmp(mode, "out") == 0)
|
||||
{
|
||||
return GPIO_ModeOut_PP_5mA;
|
||||
}
|
||||
else if (strcmp(mode, "in") == 0)
|
||||
{
|
||||
if (strcmp(pull, "up") == 0)
|
||||
{
|
||||
return GPIO_ModeIN_PU;
|
||||
}
|
||||
else if (strcmp(pull, "down") == 0)
|
||||
{
|
||||
return GPIO_ModeIN_PD;
|
||||
}
|
||||
else
|
||||
{
|
||||
return GPIO_ModeIN_Floating;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return GPIO_ModeIN_Floating;
|
||||
}
|
||||
}
|
9
package/CH582/ch582_utils.h
Normal file
9
package/CH582/ch582_utils.h
Normal file
@ -0,0 +1,9 @@
|
||||
#ifndef _CH582_UTILS_H_
|
||||
#define _CH582_UTILS_H_
|
||||
#include "stdint.h"
|
||||
|
||||
uint8_t gpio_get_group(char *pin);
|
||||
uint32_t gpio_get_pin(char *pin);
|
||||
uint32_t gpio_get_mode(char *mode, char *pull);
|
||||
|
||||
#endif
|
26
package/CH582/pika_config.c
Normal file
26
package/CH582/pika_config.c
Normal file
@ -0,0 +1,26 @@
|
||||
#include "PikaPlatform.h"
|
||||
#include "printf.h"
|
||||
|
||||
|
||||
void __platform_printf(char *fmt, ...)
|
||||
{
|
||||
va_list args;
|
||||
va_start(args, fmt);
|
||||
vprintf_(fmt, args);
|
||||
va_end(args);
|
||||
}
|
||||
|
||||
int __platform_vsnprintf(char *buff, size_t size, const char *fmt, va_list args)
|
||||
{
|
||||
return vsnprintf_(buff, size, fmt, args);
|
||||
}
|
||||
|
||||
int __platform_sprintf(char *buff, char *fmt, ...)
|
||||
{
|
||||
va_list args;
|
||||
va_start(args, fmt);
|
||||
int res = vsnprintf_(buff, PIKA_CONFIG_SPRINTF_BUFF_SIZE, fmt, args);
|
||||
va_end(args);
|
||||
return res;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user