ActiveMQ CoreJava UI Automator 细胞因子 typeAliases docker安装部署 regex pygame ldap 后台管理界面 河南普通话 angular视频教程 jq解析json cpm计算 bentley软件介绍 mysql分页查询sql语句 mysql函数 python中def的用法 python参数 javafor循环 java获取本机ip java判断 linux密码 怎么装linux系统 php开发实例 网页游戏开发入门 超级煎蛋卷 ILspy java疯狂讲义 pr黑场过渡 extjs视频教程 美国地址生成器 思源字体 电脑书籍下载 vue定时器 mix2s拆机 ipad上市时间 omg小北 视频抠图 ps怎么羽化图片边缘
当前位置: 首页 > 学习教程  > python

RT-Thread:RT-Thread Nano移植到GD3E103

2021/2/7 11:43:23 文章标签: 测试文章如有侵权请发送至邮箱809451989@qq.com投诉后文章立即删除

文章目录前言一、下载、添加RT-Thread包二、移植代码三、Debug四、编译、下载和运行总结前言 项目需要使用GD32E103,虽然兆易创新的旗舰店客服有发数据包给我,里面有GD32E103的RT-Thread的代码,但是不知道为什么能编译,但是无法运…

文章目录

  • 前言
  • 一、下载、添加RT-Thread包
  • 二、移植代码
  • 三、Debug
  • 四、编译、下载和运行
  • 总结


前言

项目需要使用GD32E103,虽然兆易创新的旗舰店客服有发数据包给我,里面有GD32E103的RT-Thread的代码,但是不知道为什么能编译,但是无法运行,本人也不想纠结他的问题,网上也没有这个系列芯片移植资料,直接自己开干,不参考他的。源码我会放到文章最后,欢迎大家下载,如果下方还没连接说明还没审核通过。

一、下载、添加RT-Thread包

1、找到GD32E103的跑马灯例程(前提这个程序能正常运行),修改工程文件,后缀加上一个x。
修改前:
在这里插入图片描述
修改后:
在这里插入图片描述

2、打开工程,点击工具栏的 Pack Installer 图标:
在这里插入图片描述
3、点击右侧的 Pack,展开 Generic,可以找到 RealThread::RT-Thread,点击 Action 栏对应的 Install ,就可以在线安装 Nano Pack 。
在这里插入图片描述
4、打开Manage Run-Time Environment,选择Kenel,点击ok。
在这里插入图片描述
在这里插入图片描述
5、RTOS代码已经加入工程
在这里插入图片描述

二、移植代码

1、注释掉HardFault_Handler、PendSV_Handler和SysTick_Handler函数,这三个函数已经被RTT接管使用。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2、修改_SysTick_Config函数

static uint32_t _SysTick_Config(rt_uint32_t ticks)
{
    if ((ticks - 1) > 0xFFFFFF)
    {
        return 1;
    }
    
    _SYSTICK_LOAD = ticks - 1; 
    _SYSTICK_PRI = 0xFF;
    _SYSTICK_VAL  = 0;
    _SYSTICK_CTRL = 0x07;  
    
    return 0;
}

在这里插入图片描述
3、使用动态内存功能
在这里插入图片描述
4、修改main.c

#include <rtthread.h>
#include "led.h"

int main(void)
{
	led_init();
	
    while(1)
	{
        /* turn on LED2 */
        gpio_bit_set(GPIOC,GPIO_PIN_6);
        rt_thread_mdelay(500);
		
        /* turn off LED2 */
        gpio_bit_reset(GPIOC,GPIO_PIN_6);
        rt_thread_mdelay(500);
    }
}

在这里插入图片描述
led.c

#include "led.h"

void led_init(void)
{
    /* enable the LED2 GPIO clock */
    rcu_periph_clock_enable(RCU_GPIOC);
    /* configure LED2 GPIO port */ 
    gpio_init(GPIOC, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ,GPIO_PIN_6);
    /* reset LED2 GPIO pin */
    gpio_bit_reset(GPIOC,GPIO_PIN_6);
}

三、Debug

1、打开Options for Target,最注意要修改size的值,我之前遇到就是size值很小,导致下载失败,size就是指代码区大小,我的是128k所以是0x00020000
在这里插入图片描述

四、编译、下载和运行

1、编译后0错误1警告,警告是因为有一个对象定义了却没有使用,可以不用管他。
在这里插入图片描述
2、下载运行现象就是能够正常看到LED的闪烁和裸机运行的时候LED闪烁现象一直说明就是成功了
3、代码下载。

总结

还不能回家躺尸,还不能使用控制台...

本文链接: http://www.dtmao.cc/news_show_2000289.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?