mirror of
https://gitee.com/Lyon1998/pikapython.git
synced 2025-01-29 17:22:56 +08:00
!185 BLIOT_v0.2.0_1669811665462
Merge pull request !185 from pikabot/BLIOT_v0.2.0_1669811665462
This commit is contained in:
commit
027c8b2038
@ -1,29 +1,90 @@
|
||||
#include <hosal_dac.h>
|
||||
#include "../PikaStdDevice/pika_hal.h"
|
||||
|
||||
int pika_hal_platform_DAC_open(pika_dev* dev, char* name) {
|
||||
hosal_dac_dev_t* platform_dac = pikaMalloc(sizeof(hosal_dac_dev_t));
|
||||
memset(platform_dac, 0, sizeof(hosal_dac_dev_t));
|
||||
dev->platform_data = platform_dac;
|
||||
/* Support P1/P2 ... */
|
||||
if (name[0] == 'P') {
|
||||
int pin = fast_atoi(name + 1);
|
||||
if (pin != 13 && pin != 14) {
|
||||
/* bl602, only support P13, P14*/
|
||||
__platform_printf("DAC only support P13, P14\r\n");
|
||||
return -1;
|
||||
}
|
||||
platform_dac->config.pin = pin;
|
||||
platform_dac->port = 0;
|
||||
#if PIKA_DEBUG_ENABLE
|
||||
__platform_printf("DAC: Open DAC on P%d\r\n", platform_dac->config.pin);
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
#if PIKA_DEBUG_ENABLE
|
||||
__platform_printf("Failed to open DAC: %s\r\n", name);
|
||||
#endif
|
||||
return -1;
|
||||
}
|
||||
|
||||
int pika_hal_platform_DAC_close(pika_dev* dev) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
int pika_hal_platform_DAC_read(pika_dev* dev, void* buf, size_t count) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
int pika_hal_platform_DAC_write(pika_dev* dev, void* buf, size_t count) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
int pika_hal_platform_DAC_ioctl_enable(pika_dev* dev) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
int pika_hal_platform_DAC_ioctl_disable(pika_dev* dev) {
|
||||
return -1;
|
||||
hosal_dac_dev_t* platform_dac = (hosal_dac_dev_t*)dev->platform_data;
|
||||
if (NULL != platform_dac) {
|
||||
pikaFree(platform_dac, sizeof(hosal_dac_dev_t));
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
int pika_hal_platform_DAC_ioctl_config(pika_dev* dev,
|
||||
pika_hal_DAC_config* cfg) {
|
||||
hosal_dac_dev_t* platform_dac = (hosal_dac_dev_t*)dev->platform_data;
|
||||
/* only support 8k,16k,32k */
|
||||
platform_dac->config.freq = cfg->speed;
|
||||
platform_dac->config.dma_enable = 0;
|
||||
cfg->max = 3300000;
|
||||
cfg->vref = (pika_float)3.3;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int pika_hal_platform_DAC_read(pika_dev* dev, void* buf, size_t count) {
|
||||
int ret = 0;
|
||||
hosal_dac_dev_t* platform_dac = (hosal_dac_dev_t*)dev->platform_data;
|
||||
ret = hosal_dac_get_value(platform_dac);
|
||||
#if PIKA_DEBUG_ENABLE
|
||||
__platform_printf("DAC: Read %d\r\n", ret);
|
||||
#endif
|
||||
if (ret < 0) {
|
||||
return ret;
|
||||
}
|
||||
*(uint32_t*)buf = ret;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int pika_hal_platform_DAC_write(pika_dev* dev, void* buf, size_t count) {
|
||||
hosal_dac_dev_t* platform_dac = (hosal_dac_dev_t*)dev->platform_data;
|
||||
#if PIKA_DEBUG_ENALBE
|
||||
__platform_printf("DAC: Write %d\r\n", *(uint32_t*)buf);
|
||||
#endif
|
||||
return hosal_dac_set_value(platform_dac, *(uint32_t*)buf);
|
||||
}
|
||||
|
||||
int pika_hal_platform_DAC_ioctl_enable(pika_dev* dev) {
|
||||
hosal_dac_dev_t* platform_dac = (hosal_dac_dev_t*)dev->platform_data;
|
||||
if (!dev->is_enabled) {
|
||||
hosal_dac_init(platform_dac);
|
||||
#if PIKA_DEBUG_ENABLE
|
||||
__platform_printf("DAC: Enable DAC, freq: %d\r\n",
|
||||
platform_dac->config.freq);
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
int pika_hal_platform_DAC_ioctl_disable(pika_dev* dev) {
|
||||
hosal_dac_dev_t* platform_dac = (hosal_dac_dev_t*)dev->platform_data;
|
||||
if (dev->is_enabled) {
|
||||
hosal_dac_finalize(platform_dac);
|
||||
return 0;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
@ -1,30 +1,129 @@
|
||||
#include <hosal_spi.h>
|
||||
#include "../PikaStdDevice/pika_hal.h"
|
||||
|
||||
static int _num2pin(int num, uint8_t* mosi, uint8_t* miso, uint8_t* scli) {
|
||||
/*********************** BL602 **************************
|
||||
* SPI0 -----> MOSI:P20, MISO:P0, SCLK:P22
|
||||
*/
|
||||
switch (num) {
|
||||
case 0:
|
||||
*mosi = 20;
|
||||
*miso = 0;
|
||||
*scli = 22;
|
||||
break;
|
||||
default:
|
||||
return -1;
|
||||
}
|
||||
#if PIKA_DEBUG_ENABLE
|
||||
__platform_printf("SPI%d: mosi:%d, miso:%d, scli:%d\r\n", num, *mosi, *miso,
|
||||
*scli);
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
||||
int pika_hal_platform_SPI_open(pika_dev* dev, char* name) {
|
||||
hosal_spi_dev_t* platform_spi = pikaMalloc(sizeof(hosal_spi_dev_t));
|
||||
memset(platform_spi, 0, sizeof(hosal_spi_dev_t));
|
||||
dev->platform_data = platform_spi;
|
||||
/* Support SPI0, SPI1, SPI2 */
|
||||
if (name[0] == 'S' && name[1] == 'P' && name[2] == 'I') {
|
||||
int spi_num = fast_atoi(name + 3);
|
||||
platform_spi->port = 0;
|
||||
if (0 == _num2pin(spi_num, &platform_spi->config.pin_mosi,
|
||||
&platform_spi->config.pin_miso,
|
||||
&platform_spi->config.pin_clk)) {
|
||||
return 0;
|
||||
} else {
|
||||
__platform_printf("SPI: Open SPI%d failed\r\n", spi_num);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
int pika_hal_platform_SPI_close(pika_dev* dev) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
int pika_hal_platform_SPI_read(pika_dev* dev, void* buf, size_t count) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
int pika_hal_platform_SPI_write(pika_dev* dev, void* buf, size_t count) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
int pika_hal_platform_SPI_ioctl_enable(pika_dev* dev) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
int pika_hal_platform_SPI_ioctl_disable(pika_dev* dev) {
|
||||
return -1;
|
||||
hosal_spi_dev_t* platform_spi = (hosal_spi_dev_t*)dev->platform_data;
|
||||
if (NULL != platform_spi) {
|
||||
pikaFree(platform_spi, sizeof(hosal_spi_dev_t));
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
int pika_hal_platform_SPI_ioctl_config(pika_dev* dev,
|
||||
pika_hal_SPI_config* cfg) {
|
||||
hosal_spi_dev_t* platform_spi = (hosal_spi_dev_t*)dev->platform_data;
|
||||
if (!dev->is_enabled) {
|
||||
platform_spi->port = 0;
|
||||
platform_spi->config.dma_enable = 0;
|
||||
platform_spi->config.freq = cfg->speed;
|
||||
platform_spi->p_arg = NULL;
|
||||
switch (cfg->master_or_slave) {
|
||||
case PIKA_HAL_SPI_MASTER:
|
||||
platform_spi->config.mode = HOSAL_SPI_MODE_MASTER;
|
||||
break;
|
||||
case PIKA_HAL_SPI_SLAVE:
|
||||
platform_spi->config.mode = HOSAL_SPI_MODE_SLAVE;
|
||||
break;
|
||||
default:
|
||||
return -1;
|
||||
}
|
||||
switch (cfg->mode) {
|
||||
case PIKA_HAL_SPI_MODE_0:
|
||||
platform_spi->config.polar_phase = 0;
|
||||
break;
|
||||
case PIKA_HAL_SPI_MODE_1:
|
||||
platform_spi->config.polar_phase = 1;
|
||||
break;
|
||||
case PIKA_HAL_SPI_MODE_2:
|
||||
platform_spi->config.polar_phase = 2;
|
||||
break;
|
||||
case PIKA_HAL_SPI_MODE_3:
|
||||
platform_spi->config.polar_phase = 3;
|
||||
break;
|
||||
default:
|
||||
return -1;
|
||||
}
|
||||
#if PIKA_DEBUG_ENABLE
|
||||
__platform_printf("SPI: freq:%d, mode:%d, polar_phase:%d\r\n",
|
||||
platform_spi->config.freq, platform_spi->config.mode,
|
||||
platform_spi->config.polar_phase);
|
||||
#endif
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
int pika_hal_platform_SPI_ioctl_enable(pika_dev* dev) {
|
||||
if (!dev->is_enabled) {
|
||||
hosal_spi_dev_t* platform_spi = (hosal_spi_dev_t*)dev->platform_data;
|
||||
#if PIKA_DEBUG_ENABLE
|
||||
__platform_printf(
|
||||
"SPI: Open SPI%d, freq:%d, mode:%d, polar_phase:%d\r\n",
|
||||
platform_spi->port, platform_spi->config.freq,
|
||||
platform_spi->config.mode, platform_spi->config.polar_phase);
|
||||
#endif
|
||||
hosal_spi_init(platform_spi);
|
||||
return 0;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
int pika_hal_platform_SPI_ioctl_disable(pika_dev* dev) {
|
||||
if (dev->is_enabled) {
|
||||
hosal_spi_dev_t* platform_spi = (hosal_spi_dev_t*)dev->platform_data;
|
||||
hosal_spi_finalize(platform_spi);
|
||||
return 0;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
int pika_hal_platform_SPI_write(pika_dev* dev, void* buf, size_t count) {
|
||||
hosal_spi_dev_t* platform_spi = (hosal_spi_dev_t*)dev->platform_data;
|
||||
pika_hal_SPI_config* cfg = (pika_hal_SPI_config*)dev->ioctl_config;
|
||||
return hosal_spi_send(platform_spi, buf, count, cfg->timeout);
|
||||
}
|
||||
|
||||
int pika_hal_platform_SPI_read(pika_dev* dev, void* buf, size_t count) {
|
||||
hosal_spi_dev_t* platform_spi = (hosal_spi_dev_t*)dev->platform_data;
|
||||
pika_hal_SPI_config* cfg = (pika_hal_SPI_config*)dev->ioctl_config;
|
||||
return hosal_spi_recv(platform_spi, buf, count, cfg->timeout);
|
||||
}
|
||||
|
@ -1,30 +0,0 @@
|
||||
#include "../PikaStdDevice/pika_hal.h"
|
||||
|
||||
int pika_hal_platform_UART_open(pika_dev* dev, char* name) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
int pika_hal_platform_UART_close(pika_dev* dev) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
int pika_hal_platform_UART_read(pika_dev* dev, void* buf, size_t count) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
int pika_hal_platform_UART_write(pika_dev* dev, void* buf, size_t count) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
int pika_hal_platform_UART_ioctl_enable(pika_dev* dev) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
int pika_hal_platform_UART_ioctl_disable(pika_dev* dev) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
int pika_hal_platform_UART_ioctl_config(pika_dev* dev,
|
||||
pika_hal_UART_config* cfg) {
|
||||
return -1;
|
||||
}
|
@ -441,4 +441,7 @@ releases = [ "v1.0.0 ca8fe36d68be16722317860394fdf78c620e3e2d" ]
|
||||
|
||||
[[packages]]
|
||||
name = "BLIOT"
|
||||
releases = [ "v0.1.0 4599ce8681d293a5cc7682115205ab5e85e9b5e8" ]
|
||||
releases = [
|
||||
"v0.1.0 4599ce8681d293a5cc7682115205ab5e85e9b5e8",
|
||||
"v0.2.0 eee8e1848eed77f3ebed777230104ebb4dfc3263"
|
||||
]
|
||||
|
Loading…
x
Reference in New Issue
Block a user