📄 gpio_test.c
字号:
/* standard includes *///#include <sys/io.h>#include <stdio.h>#include <stdlib.h>#include <string.h>//#include "../include/em_types.h"//#include "../include/dmesg.h"/* mum includes */#define ALLOW_OS_CODE 1#include "rmdef/rmdef.h"#include "llad/include/gbus.h"#include "emhwlib_hal/include/emhwlib_registers.h"#include "emhwlib_hal/i2c/include/i2c_hal.h"#include "../helper/helper.h"RMvoid show_cmdline(char* appname);int main(int argc, char* argv[]){ int argi = 1; struct llad* pLLAD; RMvoid* pGBus; RMstatus s; GPIO_CONFIG gpioConfig; if( (s = mum_init( 0, &pLLAD, &pGBus)) != RM_OK ) { MPRINT(("main !mum_init FAILED %d\ncheck your 86xx driver\n", s)); exit(s); } memset(&gpioConfig, 0 , sizeof(GPIO_CONFIG)); gpioConfig.pGBus = pGBus; gpioConfig.nGpioCfg = GpioCfg_Gpio; { RMuint8 pin, data, dir; while( argi < argc ) { switch( argv[argi][0] ) {_label_instructions: default: case 'h': show_cmdline(argv[0]); argi = argi + 1; goto main_exit; break; case 'u': if (argv[argi][1] == '1' ) gpioConfig.nGpioCfg = GpioCfg_Uart1; else gpioConfig.nGpioCfg = GpioCfg_Uart0; argi = argi + 1; break; case 'd': if( argc <= argi + 2) goto _label_instructions; pin = strtol(argv[argi+1], NULL, 10); dir = (argv[argi+2][0] == 'o')?1:0; argi = argi + 3; mum_gpioSetDir(&gpioConfig, pin, dir); MPRINT(("d %d %d\n", pin, dir)); break; case 'w': if( argc <= argi + 2) goto _label_instructions; pin = strtol(argv[argi+1], NULL, 10); data = strtol(argv[argi+2], NULL, 10); argi = argi + 3; mum_gpioSet(&gpioConfig, pin, data); MPRINT(("w %d %d\n", pin, data)); break; case 'r': if( argc <= argi + 1) goto _label_instructions; pin = strtol(argv[argi+1], NULL, 10); argi = argi + 2; mum_gpioGet(&gpioConfig, pin, &data); MPRINT(("r %d 0x%x\n", pin, data)); break; } // end switch } //end while }main_exit: mum_exit(pGBus, pLLAD); return 0;}RMvoid show_cmdline(char* appname){ MPRINT(("%s how to use\n", appname)); }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -