全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > 接口/总线/驱动 >

FreeRTOS移植+点亮OLED任务线程

时间:2022-10-11 14:37

人气:

作者:admin

标签: OLED  任务  移植  点亮  FreeRTOS 

导读:需要注意的地方是GD32的中断都放在了gd32f3x0_it.c中,需要屏蔽2个中断空函数,进而直接调用freeRTOS内的同名函数...

准备工作:

先下载了官方提供的手册、DEMO、固件包,并通读了一下(注意,MDK版本要求比较高!为了找个能用的Keil折腾了很久):

pYYBAGNE4BWATCH0AABs6gP8e0U942.png

制作裸机点灯代码

前面已经有‘探路者’把这部分做完了,我就不再叙述了,不过还是要自己动手移植一下,这样可以了解片子与f103等常用的芯片的区别。

添加FreeRTOS部分

这是第一次真正意义上自己独立移植了一次FreeRTOS^_^,没有遇到太多的障碍:

使用的FreeRTOS版本是正点原子f103光盘里面的,9.0版本

poYBAGNE4CeAP0h8AACuUKuhF_E043.png

解压缩后,只需要复制FreeRTOS,而用不到*-Plus:

poYBAGNE4DiASJXtAACZaNJCxFU587.png

FreeRTOS中,也有很多用不到的文件,请参考正点原子开源的FreeRTOS移植教程

需要注意的地方是GD32的中断都放在了gd32f3x0_it.c中,需要屏蔽2个中断空函数,进而直接调用freeRTOS内的同名函数:

pYYBAGNE4E6ALv1VAAFpuxqrufQ590.png

并在systick_handler中加入调用FreeRTOS的时钟函数:

void SysTick_Handler(void)
{
    //led_spark();
    delay_decrement();
    #if (INCLUDE_xTaskGetSchedulerState == 1)
        if (xTaskgetSchedulerState() != taskSCHEDULER_NOT_STARTED)
        {
    #endif
            xPortSysTickHandler();
    #if (INCLUDE_xTaskGetSchedulerState == 1)    
        }
    #endif
}

主要FreeRTOS的栈设置要合理:

#define configTOTAL_HEAP_SIZE            ( ( size_t ) ( 2 * 1024 ) )

Program Size: Code=6068 RO-data=6448 RW-data=112 ZI-data=4296

这样片子的可玩性还是挺高的。

移植正点原子OLED代码:

这部分代码逻辑比较简单,看下正点原子的教程都可以很快搞定:

主要修改了正点原子通过位带操作控制引脚改为使用GD的库函数:

                                      
//---------------------------OLED端口定义--------------------------                         
#define OLED_CS(x)  gpio_bit_write(GPIOB,GPIO_PIN_0,(FlagStatus)(x));
#define OLED_RST(x) gpio_bit_write(GPIOA,GPIO_PIN_5,(FlagStatus)(x));
#define OLED_DC(x)  gpio_bit_write(GPIOB,GPIO_PIN_1,(FlagStatus)(x));
#define OLED_WR(x)  gpio_bit_write(GPIOB,GPIO_PIN_4,(FlagStatus)(x));
#define OLED_RD(x)  gpio_bit_write(GPIOB,GPIO_PIN_5,(FlagStatus)(x));

最终完成移植:

pYYBAGNE4GCAJRa-AAFR5IG3k2w845.png

总结

现在芯片都比较成熟,性能都过剩,这款芯片提供的资料也都够用,对于上手使用比较方便。后面自己做一些手表、物联网小产品,可以玩一下。




审核编辑:刘清

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信