打印
[活动]

玩游戏拿大奖,东软载波展现国内IC设计实力

[复制链接]
楼主: 21ic小管家
手机看帖
扫描二维码
随时随地手机跟帖
41
国产ic加油 参加完成活动

使用特权

评论回复
42
weijinke| | 2017-8-6 16:54 | 只看该作者
已经参加

使用特权

评论回复
43
whtwhtw| | 2017-8-7 08:56 | 只看该作者
支持国产,参加活动!

使用特权

评论回复
44
jiaminZ| | 2017-8-7 17:40 | 只看该作者
已参加,支持!

使用特权

评论回复
45
ningling_21| | 2017-8-8 15:57 | 只看该作者
支持

使用特权

评论回复
46
ts1607| | 2017-8-9 12:51 | 只看该作者
支持

使用特权

评论回复
47
何果| | 2017-8-11 11:44 | 只看该作者
支持国产

使用特权

评论回复
48
jiaminzhang| | 2017-8-11 13:58 | 只看该作者
支持!

使用特权

评论回复
49
xiaobai789| | 2017-8-11 21:18 | 只看该作者
好东西!!

使用特权

评论回复
50
糖加牛奶| | 2017-8-11 23:13 | 只看该作者
好活动,支持

使用特权

评论回复
51
740071911| | 2017-8-12 15:50 | 只看该作者
已参加

使用特权

评论回复
52
纪国圣| | 2017-8-13 16:03 | 只看该作者
刚刚参加完活动

使用特权

评论回复
53
CJQ_ENJOY| | 2017-8-15 15:27 | 只看该作者
支持国产单片

使用特权

评论回复
54
ttjlc| | 2017-8-16 18:18 | 只看该作者

在HR8P506上面移植使用rt-thread操作系统

本帖最后由 ttjlc 于 2017-8-16 18:21 编辑

基于Cortex-M0的HR8P506性价比非常高本身芯片资源拥有8K Ram和36K Flash在某些应用上如果加入一个小型的操作系统将会有助于简化软件设计和提高开发效率。

rt-thread是一款国产开源免费的实时操作系统使用简单方便在HR8P506上面移植该系统是个不错的选择。关于该系统的具体介绍可参考官方网站http://www.rt-thread.org/

移植的过程比较简单主要是参考了rtt官方的bsp附件是已经移植好的工程由于手头目标板暂没有将串口引出来所以将CONSOLE屏蔽了实际应用时打开可有助于开发调试。

工程的硬件是基于【HRSDK-GDB-HR8P506】可直接下载测试。
下面是main.c的部分程序主要是初始化启动系统和创建了两个线程其中一个线程等待另一个线程的信号量当收到信号量时翻转LED的状态。


/* includes --------------------------------------------------------------------------------------*/
#include "main.h"
#include "HR8P506.h"
#include "rtthread.h"
#include "lib_gpio.h"
#include "hr8p506_macro.h"
#include "rthw.h"
/* private typedef -------------------------------------------------------------------------------*/

/* private define --------------------------------------------------------------------------------*/   

/* private macro ---------------------------------------------------------------------------------*/

/* private variables -----------------------------------------------------------------------------*/
extern int Image$$RW_IRAM1$$ZI$$Limit;
#define HR8P506_SRAM_SIZE         8
#define HR8P506_SRAM_END          (0x20000000 + HR8P506_SRAM_SIZE * 1024)

struct rt_semaphore s_tLedSem;
/* private function prototypes -------------------------------------------------------------------*/
static void rt_hw_board_init(void);
static void led_thread_entry(void *pdata);
static void sem_thread_entry(void *pdata);
static void rt_application_init(void);
static void rtthread_startup(void);


/***************************************************************************************************
                                           外 部 函 数
***************************************************************************************************/
int main(void)
{
    /* disable interrupt first */
    rt_hw_interrupt_disable();
   
    /* startup RT-Thread RTOS */
    rtthread_startup();

    while (1);
}

/***************************************************************************************************
                                           内 部 函 数
***************************************************************************************************/
/**
  * @brief   初始化硬件目标板
  * @param   none
  * @retval  none
  * @author  linxy
  * @date    2017/1/22
  * @NOTE   
  */
static void rt_hw_board_init(void)
{
    SysTick_Config( 48000000 / RT_TICK_PER_SECOND );
}

/**
  * @brief   led线程,等待一个信号量,然后翻转LED
  * @param   pdata
  * @retval  none
  * @author  linxy
  * @date    2017/1/22
  * @note   
  */
static void led_thread_entry(void *pdata)
{
    GPIO_InitSettingType GPIO_InitStructure;

    SCU_PeripheralClockCmd(SCU_PLCK_GPIO, 1);

    GPIO_InitStructure.Dir    = GPIO_Direction_Output;
    GPIO_InitStructure.DS     = GPIO_DS_Output_Normal;
    GPIO_InitStructure.Func   = GPIO_Reuse_Func0;
    GPIO_InitStructure.ODE    = GPIO_ODE_Output_Disable;
    GPIO_InitStructure.PDE    = GPIO_PDE_Input_Disable;
    GPIO_InitStructure.PUE    = GPIO_PUE_Input_Enable;
    GPIO_InitStructure.Signal = GPIO_Pin_Signal_Digital;
    GPIO_Init(GPIO_Pin_A6, &GPIO_InitStructure);

    pdata = pdata;  
    while (1) {
        rt_sem_take(&s_tLedSem, RT_WAITING_FOREVER);
        GPIO_ToggleBit(GPIO_Pin_A6);
    }
}

/**
  * @brief   时间信号量线程,每0.5秒释放一个信号量
  * @param   pdata
  * @retval  none
  * @author  linxy
  * @date    2017/1/22
  * @note   
  */
static void sem_thread_entry(void *pdata)
{
    pdata = pdata;
    while (1) {
        rt_thread_delay(RT_TICK_PER_SECOND/2);
        rt_sem_release(&s_tLedSem);
    }
}

/**
  * @brief   用户应用初始化
  * @param   none
  * @retval  none
  * @author  linxy
  * @date    2017/1/22
  * @note   
  */
static void rt_application_init(void)
{
    rt_thread_t user_thread;

    rt_sem_init(&s_tLedSem, "led_sem", 0, RT_IPC_FLAG_FIFO);

    /* Create led thread */
    user_thread = rt_thread_create("led",
        led_thread_entry,
        RT_NULL,
        256, 19, 20);
    if(user_thread != RT_NULL)
        rt_thread_startup(user_thread);

    /* Create led thread */
    user_thread = rt_thread_create("sem",
        sem_thread_entry, RT_NULL,
        256, 16, 20);
    if(user_thread != RT_NULL)
        rt_thread_startup(user_thread);
}   

/**
  * @brief   rtt启动,此函数永不返回
  * @param   none
  * @retval  none
  * @author  linxy
  * @date    2017/1/22
  * @note   
  */
static void rtthread_startup(void)
{
    /* init board */
    rt_hw_board_init();

    /* show version */
    rt_show_version();

    /* init tick */
    rt_system_tick_init();

    /* init kernel object */
    rt_system_object_init();

    /* init timer system */
    rt_system_timer_init();

#ifdef RT_USING_HEAP
    rt_system_heap_init((void*)&Image$$RW_IRAM1$$ZI$$Limit, (void*)HR8P506_SRAM_END);
#endif

    /* init scheduler system */
    rt_system_scheduler_init();

    /* init application */
    rt_application_init();

    /* init timer thread */
    rt_system_timer_thread_init();

    /* init idle thread */
    rt_thread_idle_init();

    /* start scheduler */
    rt_system_scheduler_start();

    /* never reach here */
    return ;
}


/* end of file -----------------------------------------------------------------------------------*/

hr8p506_rtt.rar

558.09 KB

使用特权

评论回复
55
254262840| | 2017-8-22 20:06 | 只看该作者
之前在电表厂上班  国内大部分电力线载波都是东软  发展很快 服务也不错

使用特权

评论回复
56
caipp| | 2017-8-25 17:45 | 只看该作者
支持 已参加

使用特权

评论回复
57
zhanzr21| | 2017-9-15 12:10 | 只看该作者
来了

使用特权

评论回复
58
zhanzr21| | 2017-9-15 12:11 | 只看该作者
本帖最后由 zhanzr21 于 2017-9-15 13:00 编辑

我翻了一下子, 东软的8bit处理器跟PIC的架构类似, 32bit直接用的Cortex M0/M3
都是比较熟的, 改天买块板子来试试

使用特权

评论回复
59
zhanzr21| | 2017-9-15 13:00 | 只看该作者
这一章是最想看的内容:

使用特权

评论回复
60
aifang22| | 2017-9-15 16:49 | 只看该作者

这是获奖了吗,,都没看到相关的信息啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则