|
例程基于Huawei官方開發(fā)的樣例進(jìn)行修改,并保留華為官方的例程
上海靈動(dòng)是國內(nèi)專注于MCU產(chǎn)品與MCU應(yīng)用方案的領(lǐng)先供應(yīng)商,是中國工業(yè)及信息化部和上海市信息化辦公室認(rèn)定的集成電路設(shè)計(jì)企業(yè),同時(shí)也是上海市認(rèn)定的高新技術(shù)企業(yè)。自2011年3月成立至今,靈動(dòng)微電子已經(jīng)成功完成數(shù)百余MCU產(chǎn)品的設(shè)計(jì)及推廣,靈動(dòng)微電子目前已批量供貨的基于ARM Cortex-M0及Cortex-M3 內(nèi)核的MCU產(chǎn)品包括:針對通用高性能市場的MM32F系列,針對超低功耗及安全應(yīng)用的MM32L系列,具有多種無線連接功能的MM32W系列,電機(jī)驅(qū)動(dòng)及控制專用的MM32SPIN系列,以及OTP型的MM32P系列等,以滿足客戶及市場多領(lǐng)域、多層次的豐富應(yīng)用場景需求。
0.png (5.98 KB, 下載次數(shù): 69)
下載附件
2018-11-6 16:15 上傳
實(shí)驗(yàn)器材:
Mini Board Rev D1
實(shí)驗(yàn)?zāi)康?
MM32L373PF搭載LiteOS運(yùn)行雙事務(wù)
硬件資源:
1、LED1(PB5),LED2(PB4),LED3(PB3),LED4(PA15)
2、WK_UP(PA0),KEY3(PB10),KEY4(PB11)
實(shí)驗(yàn)現(xiàn)象:
1、上電后,LED1、LED2以流水燈的方式運(yùn)行
2、按下KEY3,LED5亮滅
3、按下KEY4,LED6亮滅
注意事項(xiàng):
1,VBAT需要供電
單片機(jī)源程序如下:
- /*
- 本程序適配MM32 MiniBoard /MCU-MM32L373PF
- */
- #include "los_sys.h"
- #include "los_tick.h"
- #include "los_task.ph"
- #include "los_config.h"
- #include "los_bsp_led.h"
- #include "los_bsp_key.h"
- #include "los_bsp_uart.h"
- #include "los_inspect_entry.h"
- #include "los_demo_entry.h"
- #include <string.h>
- #include "delay.h"
- extern void FunctionInit(void);
- //----------------------- First event -------------------------------//
- static UINT32 g_uwboadTaskID;
- LITE_OS_SEC_TEXT VOID LOS_BoadExampleTskfunc(VOID)
- {
- while (1)
- {
- LOS_EvbLedControl(LOS_LED1, LED_ON);
- LOS_EvbLedControl(LOS_LED2, LED_OFF);
- LOS_EvbUartWriteStr("Board Test\n");
- LOS_TaskDelay(500);
- LOS_EvbLedControl(LOS_LED1, LED_OFF);
- LOS_EvbLedControl(LOS_LED2, LED_ON);
- LOS_TaskDelay(500);
- }
- }
- void LOS_BoadExampleEntry(void)
- {
- UINT32 uwRet;
- TSK_INIT_PARAM_S stTaskInitParam;
- (VOID)memset((void *)(&stTaskInitParam), 0, sizeof(TSK_INIT_PARAM_S));
- stTaskInitParam.pfnTaskEntry = (TSK_ENTRY_FUNC)LOS_BoadExampleTskfunc;
- stTaskInitParam.uwStackSize = LOSCFG_BASE_CORE_TSK_IDLE_STACK_SIZE;
- stTaskInitParam.pcName = "BoardDemo";
- stTaskInitParam.usTaskPrio = 10;
- uwRet = LOS_TaskCreate(&g_uwboadTaskID, &stTaskInitParam);
- if (uwRet != LOS_OK)
- {
- return;
- }
- return;
- }
- //---------------------------Second event -------------------------//
- static UINT32 g_uwboadTaskID2;
- LITE_OS_SEC_TEXT VOID LOS_BoadKeyExampleTskfunc(VOID)
- {
- u8 t = 0;
- while (1)
- {
- t = KEY_Scan(0);
- switch(t)
- {
- case KEY3_PRES:
- LED3=!LED3;
- break;
- case KEY4_PRES:
- LED4=!LED4;
- break;
- default:
- LOS_TaskDelay(100);
- }
- }
- }
- void LOS_BoadKeyExampleEntry(void)
- {
- UINT32 uwRet;
- TSK_INIT_PARAM_S stTaskInitParam;
- (VOID)memset((void *)(&stTaskInitParam), 0, sizeof(TSK_INIT_PARAM_S));
- stTaskInitParam.pfnTaskEntry = (TSK_ENTRY_FUNC)LOS_BoadKeyExampleTskfunc;
- stTaskInitParam.uwStackSize = LOSCFG_BASE_CORE_TSK_IDLE_STACK_SIZE;
- stTaskInitParam.pcName = "BoardDemo";
- stTaskInitParam.usTaskPrio = 10;
- uwRet = LOS_TaskCreate(&g_uwboadTaskID2, &stTaskInitParam);
- if (uwRet != LOS_OK)
- {
- return;
- }
- return;
- }
- /*****************************************************************************
- Function : main
- Description : Main function entry
- Input : None
- Output : None
- Return : None
- *****************************************************************************/
- LITE_OS_SEC_TEXT_INIT
- int main(void)
- {
- UINT32 uwRet;
-
- //-------------------- Initialization function ------------------------//
- delay_init();
- FunctionInit(); // Init the device on the dev baord
-
- uwRet = LOS_KernelInit(); // Init LiteOS kernel.(if OS loading finished return 0)
- if (uwRet != LOS_OK) {
- return LOS_NOK;
- }
-
- //---------------- Enable LiteOS system tick interrupt --------------//
- LOS_EnableTick();
- //------------------- Create Inspect task ---------------------------//
- //LOS_Inspect_Entry(); // If use example cancel comment
- LOS_BoadExampleEntry(); // First event
- LOS_BoadKeyExampleEntry(); // Second event
-
- //------------------------ Running Kernel --------------------------//
- LOS_Start();
-
- //-------------------- Your own function code ---------------------//
- //for (;;);
-
- }
復(fù)制代碼
所有資料51hei提供下載:
LiteOS_MM32Miniboard_L073_Lib_keil5.zip
(1.02 MB, 下載次數(shù): 18)
2018-11-6 09:37 上傳
點(diǎn)擊文件名下載附件
M0 下載積分: 黑幣 -5
LiteOS_MM32Miniboard_L073_Reg_keil5.zip
(597.44 KB, 下載次數(shù): 6)
2018-11-6 09:37 上傳
點(diǎn)擊文件名下載附件
M0 下載積分: 黑幣 -5
LiteOS_MM32MiniBoard_L373_Lib_Keil5.zip
(1.17 MB, 下載次數(shù): 14)
2018-11-6 09:37 上傳
點(diǎn)擊文件名下載附件
M3 下載積分: 黑幣 -5
|
評分
-
查看全部評分
|