HR8P506上跑FreeRTOS

HR8P506是一款Cortex-m0内核的国产单片机,支持2.5-5.5V的宽电压,36KB Flash和8KB SRAM能够满足绝大多数的应用开发。

  • 四个16位定时器,一个32位定时器
  • 四路带死区互补PWM,16位分辨率
  • 一路双边PWM,32位分辨率
  • 两路UART
  • 一路增强型EUART,支持7816通信协议
  • 一路I2C接口,支持单主控模式和从动模式
  • 两路SPI接口
  • ADC:12位精度,16通道

通过J-Link的SWD调试程序非常方便。为此,我专门做了一块测试板,用于程序的调试
测试板
板上采用8MHz外部晶振,分别接了两个LED到PB0和PB1管脚上。
J1为SWD接口,用于J-Link调试和下载程序用。注意,采用J-Link V9的一定要把Pin1接到板子的VCC上,否则检测不到芯片。

板子到手后,进行了FreeRTOS的移植工作。完成后,写了个程序,让两个LED分别在两个Task中闪烁。

#include "main.h"
#include "FreeRTOS.h"
#include "task.h"
#include "semphr.h"

#include "leds.h"
#include "uart.h"

void blinky_task1()
{
	while(1)
	{
		ledsAct(LED_RED, ACT_ON);
		vTaskDelay(200);
		ledsAct(LED_RED, ACT_OFF);
		vTaskDelay(500);
	}
}

void blinky_task2()
{
	while(1)
	{
		ledsAct(LED_GREEN, ACT_ON);
		vTaskDelay(100);
		ledsAct(LED_GREEN, ACT_OFF);
		vTaskDelay(300);
	}
}

int main(void)
{
	ledsInit();
	Uart0Init(9600);  

    xTaskCreate(blinky_task1,
                (const char *)"blinky_task1",
                configMINIMAL_STACK_SIZE,
                NULL,                 
                tskIDLE_PRIORITY + 1,
                NULL                  );

    xTaskCreate(blinky_task2,
                (const char *)"blinky_task2",
                configMINIMAL_STACK_SIZE,
                NULL,                 
                tskIDLE_PRIORITY + 1, 
                NULL                  );

    vTaskStartScheduler();
    while(1);
}

完整程序代码下载:https://github.com/tugen77/FreeRTOS_HR8P506
编译完成后就可以下载程序到板上。

将J-Link与板子的J1连接好(Pin1-VCC, Pin7-SWDIO, Pin8-GND, Pin9-SWCLK, Pin15-RESET)
J-Link SWD

下载ESBurner软件,安装完毕后就可以用它来下载程序。

芯片的配置字如下:
芯片配置表

载入编译完成后的hex文件,点选“自动”,很快就可以将程序下载到芯片。

下载完成

下载成功后,Reset芯片后就可以看到两个LED等在两个Task中分别闪烁啦!~~~

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值