完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
实时操作系统(Real-time operating system, RTOS)又称即时操作系统 它会按照排序运行、管理系统资源,并为开发应用程序提供一致的基础。实时操作系统与一般的操作系统相比,最大的特色就是其“实时性”,也就是说,如果有一个任务需要执行,实时操作系统会马上(在较短时间内)执行该任务,不会有较长的延时。这种特性保证了各个任务的及时执行。掌握RTOS背后的操作系统原理、学习RTOS的编程方式,更是为将来做准备。 开发平台: KEIL μVision IDE 5.21 LinkIt SDK: C:Keil_v5ARMPACKMediaTekMTx4.0.0 硬件: UART通信的LED D9,D10 电源 LED D6, D5 用户 LED D11, D12, D13, D14, D15 D6 指示电源5V D5 指示电源3.3V D9 UART TX在传输数据 D10 UART RX在传输数据 D11 GPIO31 D12 GPIO35 D13 GPIO34 D14 GPIO33 D15 GPIO6 低电平有效 三个按钮 系统复位 S1 实时时钟(RTC)中断 S4 外部中断 S5 S5 用户可以将GPIO0配置为外部中断引脚。 按按钮从睡眠模式唤醒系统 XTAL(晶体振荡器) 40MHz源时钟支持,在空闲模式下具有低功耗。 用于RTC模式或外部32.768kHz模式的32.768kHz时钟。 软件: RTOS: 使用KEIL uVision IDE编译指南: http://labs.mediatek.com/site/znch/developer_tools/mediatek_linkit_rtos/get_started/7687_choose_env/7687_keil/get_sdk/ API接口说明: http://home.labs.mediatek.com/media/apis/7687/index.html RTOS代码的核心包含在三个文件中:tasks.c、queue.c、list.c这三个文件位于FreeRTOS/Source目录。在该目录下还包含三个可选的文件:timers.c、event_groups.c、croutine.c,分别实现软件定时、事件组和协程功能。 简单认识RTOS 创建任务 xTaskCreate() API 函数 函数原型portBASE_TYPE xTaskCreate( pdTASK_CODE pvTaskCode, const signed portCHAR * const pcName, unsigned portSHORT usStackDepth, void *pvParameters, unsigned portBASE_TYPE uxPriority, xTaskHandle *pxCreatedTask ); 任务函数 void ATaskFunction( void *pvParameters ); GPIO口功能说明: 第一个例子:HelloWorld static void HelloWorldTask( void *pvParameters ) { while (1) { LOG_I(common, "Hello World!"); hal_gpt_delay_ms(1000); } } //主函数中调用 xTaskCreate( HelloWorldTask, "HellWorldTask", 256, NULL, 3, NULL ); 第二个例子:LED闪烁 硬件: D13 GPIO34 描述:1ms闪烁一次 //需添加下面2个头文件 #include "hal.h" #include "hal_pinmux_define.h" void LEDinit() { hal_gpio_status_t ret; hal_pinmux_status_t ret_pinmux_status; /*GPIO_init*/ ret = hal_gpio_init(HAL_GPIO_34); if (HAL_GPIO_STATUS_OK != ret) { log_hal_error("hal_gpio_init failedrn"); hal_gpio_deinit(HAL_GPIO_34); return; } /* Set pin as GPIO mode.*/ ret_pinmux_status = hal_pinmux_set_function(HAL_GPIO_34, HAL_GPIO_34_GPIO34); if (HAL_PINMUX_STATUS_OK != ret_pinmux_status) { log_hal_error("hal_pinmux_set_function failedrn"); hal_gpio_deinit(HAL_GPIO_34); return; } /* Set GPIO as output.*/ ret = hal_gpio_set_direction(HAL_GPIO_34, HAL_GPIO_DIRECTION_OUTPUT); if (HAL_GPIO_STATUS_OK != ret) { log_hal_error("hal_gpio_set_direction failedrn"); hal_gpio_deinit(HAL_GPIO_34); return; } } //任务 static void LEDTask(void *pvParameters ) { LEDinit(); while(1) { hal_gpio_set_output(HAL_GPIO_34,1); hal_gpt_delay_ms(1000); hal_gpio_set_output(HAL_GPIO_34,0); hal_gpt_delay_ms(1000); } } //主函数 xTaskCreate( LEDTask, "LEDTask", 256, NULL, 3, NULL ); 注意:下载时一定连接 脚位 J25 (Flash 模式) 以设置开发板为 Flash Recovery 模式 移除脚位 J25 (Flash 模式) 的跳线器以设置开发板为 Flash Normal 模式 联发科实验地址: https://github.com/MediaTek-Labs 资料: Keil目录下:KeilMDKARMPACKMediaTekMTx4.0.0doc |
|
相关推荐
1 个讨论
|
|
只有小组成员才能发言,加入小组>>
920 浏览 0 评论
【KV260视觉入门套件试用体验】四、KV260 视觉入门套件和固件更新
1509 浏览 0 评论
【KV260视觉入门套件试用体验】Vitis AI Library体验之OCR识别
1141 浏览 0 评论
【KV260视觉入门套件试用体验】Vitis AI 通过迁移学习训练自定义模型
1527 浏览 0 评论
【KV260视觉入门套件试用体验】KV260系列之Petalinux镜像+Resnet 50探索
1173 浏览 0 评论
【AMD KV260视觉入门开发套件试用】4、简单几步体验ubuntu 20.04.3 LTS运行人员检测应用
1626浏览 1评论
973浏览 1评论
【KV260视觉入门套件试用体验】老刘记事儿KV260初体验之Micro-SD选型提速研究(三)
844浏览 1评论
【KV260视觉入门套件试用体验】KV260部署yolov3实现车辆和行人检测
2479浏览 1评论
【KV260视觉入门套件试用体验】基于KV260的人脸识别的实现与展示
841浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-30 07:46 , Processed in 0.640859 second(s), Total 78, Slave 58 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号