first commit
This commit is contained in:
5
application/samples/peripheral/pinctrl/CMakeLists.txt
Executable file
5
application/samples/peripheral/pinctrl/CMakeLists.txt
Executable file
@ -0,0 +1,5 @@
|
||||
#===============================================================================
|
||||
# @brief cmake file
|
||||
# Copyright (c) HiSilicon (Shanghai) Technologies Co., Ltd. 2023-2023. All rights reserved.
|
||||
#===============================================================================
|
||||
set(SOURCES "${SOURCES}" "${CMAKE_CURRENT_SOURCE_DIR}/pinctrl_demo.c" PARENT_SCOPE)
|
9
application/samples/peripheral/pinctrl/Kconfig
Executable file
9
application/samples/peripheral/pinctrl/Kconfig
Executable file
@ -0,0 +1,9 @@
|
||||
#===============================================================================
|
||||
# @brief Kconfig file.
|
||||
# Copyright (c) HiSilicon (Shanghai) Technologies Co., Ltd. 2023-2023. All rights reserved.
|
||||
#===============================================================================
|
||||
config PINCTRL_USE_PIN
|
||||
int
|
||||
prompt "Choose Pinctrl use pin."
|
||||
depends on SAMPLE_SUPPORT_PINCTRL
|
||||
default 23
|
11
application/samples/peripheral/pinctrl/pinctrl.code-workspace
Executable file
11
application/samples/peripheral/pinctrl/pinctrl.code-workspace
Executable file
@ -0,0 +1,11 @@
|
||||
{
|
||||
"folders": [
|
||||
{
|
||||
"path": "../../../../"
|
||||
}
|
||||
],
|
||||
"settings": {
|
||||
"debug.onTaskErrors": "debugAnyway",
|
||||
"workspace.samplePath": "./samples/peripheral/pinctrl"
|
||||
}
|
||||
}
|
80
application/samples/peripheral/pinctrl/pinctrl_demo.c
Executable file
80
application/samples/peripheral/pinctrl/pinctrl_demo.c
Executable file
@ -0,0 +1,80 @@
|
||||
/**
|
||||
* Copyright (c) HiSilicon (Shanghai) Technologies Co., Ltd. 2023-2023. All rights reserved.
|
||||
*
|
||||
* Description: PINCTRL Sample Source. \n
|
||||
*
|
||||
* History: \n
|
||||
* 2023-07-27, Create file. \n
|
||||
*/
|
||||
#include "pinctrl.h"
|
||||
#include "common_def.h"
|
||||
#include "soc_osal.h"
|
||||
#include "app_init.h"
|
||||
|
||||
#define PINCTRL_PIN_MODE 5
|
||||
#define PINCTRL_PIN_DS 3
|
||||
#define PINCTRL_PIN_PULL 2
|
||||
|
||||
#define PINCTRL_TASK_PRIO 24
|
||||
#define PINCTRL_TASK_STACK_SIZE 0x1000
|
||||
|
||||
static void *pinctrl_task(const char *arg)
|
||||
{
|
||||
unused(arg);
|
||||
pin_t pin = CONFIG_PINCTRL_USE_PIN;
|
||||
pin_mode_t mode;
|
||||
pin_drive_strength_t ds;
|
||||
pin_pull_t pull;
|
||||
|
||||
/* PINCTRL init. */
|
||||
uapi_pin_init();
|
||||
|
||||
osal_printk("start get pin<%d> mode!\r\n", pin);
|
||||
mode = uapi_pin_get_mode(pin);
|
||||
osal_printk("the mode of pin<%d> is %d.\r\n", pin, mode);
|
||||
mode = PINCTRL_PIN_MODE;
|
||||
osal_printk("start set pin<%d> mode<%d>!\r\n", pin, mode);
|
||||
if (uapi_pin_set_mode(pin, mode) == ERRCODE_SUCC && uapi_pin_get_mode(pin) == mode) {
|
||||
osal_printk("set pin<%d> mode<%d> succ.\r\n", pin, mode);
|
||||
}
|
||||
|
||||
osal_printk("\r\n");
|
||||
osal_printk("start get pin<%d> driver-strength!\r\n", pin);
|
||||
ds = uapi_pin_get_ds(pin);
|
||||
osal_printk("The driver-strength of pin<%d> is %d.\r\n", pin, ds);
|
||||
ds = PINCTRL_PIN_DS;
|
||||
osal_printk("start set pin<%d> driver-strength<%d>!\r\n", pin, ds);
|
||||
if (uapi_pin_set_ds(pin, ds) == ERRCODE_SUCC && uapi_pin_get_ds(pin) == ds) {
|
||||
osal_printk("set pin<%d> driver-strength<%d> succ.\r\n", pin, ds);
|
||||
}
|
||||
|
||||
osal_printk("\r\n");
|
||||
osal_printk("start get pin<%d> pull/down status!\r\n", pin);
|
||||
pull = uapi_pin_get_pull(pin);
|
||||
osal_printk("The pull/down status of pin<%d> is %d.\r\n", pin, pull);
|
||||
pull = PINCTRL_PIN_PULL;
|
||||
osal_printk("start set pin<%d> pull/down status<%d>!\r\n", pin, pull);
|
||||
if (uapi_pin_set_pull(pin, pull) == ERRCODE_SUCC && uapi_pin_get_pull(pin) == pull) {
|
||||
osal_printk("set pin<%d> pull/down status<%d> succ.\r\n", pin, pull);
|
||||
}
|
||||
|
||||
/* PINCTRL deinit. */
|
||||
uapi_pin_deinit();
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static void pinctrl_entry(void)
|
||||
{
|
||||
osal_task *task_handle = NULL;
|
||||
osal_kthread_lock();
|
||||
task_handle = osal_kthread_create((osal_kthread_handler)pinctrl_task, 0, "PinctrlTask", PINCTRL_TASK_STACK_SIZE);
|
||||
if (task_handle != NULL) {
|
||||
osal_kthread_set_priority(task_handle, PINCTRL_TASK_PRIO);
|
||||
osal_kfree(task_handle);
|
||||
}
|
||||
osal_kthread_unlock();
|
||||
}
|
||||
|
||||
/* Run the pinctrl_entry. */
|
||||
app_run(pinctrl_entry);
|
Reference in New Issue
Block a user