单片机论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1328|回复: 2
打印 上一主题 下一主题
收起左侧

ucos iii基于M0移植可运行的源码工程

[复制链接]
跳转到指定楼层
楼主
只写了两个任务,用了下信号量。
因为觉得实际工程对于移植参考价值比较大,供移植新手参考,程序很丑陋。但是运行没问题。



全部资料51hei下载地址:
AN074_Examples_HR8P506-ucos3信号量可用.rar (2.91 MB, 下载次数: 8)


HR8P506库函数修改记录

1.    StartUp 文件夹分分成MDK_StartUp和iDesigner_StartUp,分别存放MDK和iDesigner的启动文件。Project文件夹分成MDK_Project和iDesigner_Project,分别存放MDK和iDesigner的工程文件。
2.    GPIO库函数增加接口
    void GPIO_SetBit(GPIO_Pin Pin);
    void GPIO_ResetBit(GPIO_Pin Pin);
    void GPIO_ToggleBit(GPIO_Pin Pin);
    分别对GPIO进行置位,清零,取反操作。

3.     lib_wdt.h 修改  " #define WDT_RegUnLock()        (WDT->LOCK.Word = 1ACCE551)"为"#define WDT_RegUnLock()        (WDT->LOCK.Word = 0x1ACCE551)"。

4.文件作者修改为ESM Application Team

5.所有MDK工程加入--bitband功能。


6.对lib_timer.h,lib_timer.c库函数进行了较大幅度的修改,并对相关DEMO程序进行了修改。
7.在lib_SCU.c中增加了SCU_OpenXTAL()函数,用来开启外部时钟。

8 .if(ADC_InitStruct->VREFP == ADC_VREFP_IO)
ADC->CON1.VRBUF_EN = ENABLE;

修改为
if((ADC_InitStruct->VREFP == ADC_VREFP_IO)||(ADC_InitStruct->VREFP == ADC_VREFP_VREF))
ADC->CON1.VRBUF_EN = ENABLE;
else
ADC->CON1.VRBUF_EN = DISABLE;


9.lib_scu.c,lib_scu.h  添加DeviceClock_Config 函数,以函数入参形式配置是否使能外设时钟。删除使能或不使能外设时钟的宏定义。

void DeviceClock_Config(SUC_TYPE_Periph tppe_periph ,TYPE_FUNCEN NewState );

10. ADC初始化结构体变量中的VRBUF_EN在初始化函数中已固定配置,可以删除VRBUF_EN变量以及相关的赋值。  已经删除ADC_InitStruType中的VRBUF_EN。

11. lib_timer.c中增加PRECNT寄存器的设置函数,删除T16Nx_BaseInit函数中最后两句 T16Nx->PRECNT.PRECN=0和 T16Nx->CON0.ASYWEN =T16Nx_BaseInitStruct->T16Nx_ASYWEN;  在CNT和PRECNT设置函数中增加T16Nx_ASYWEN关闭和打开,即写之前打开写使能,写完后关闭写使能。修改完毕。
12. /* LVD中断标志位清除 */
#define SCU_LVDClearIFBit()    (SCU->LVDCON.IF = 0)改为
#define SCU_LVDClearIFBit()    (SCU->LVDCON.IF = 1)

13. 增加PLL配置函数

/***************************************************************
函数名:PLLClock_Config
描  述:PLL时钟配置,并设置PLL时钟为系统时钟
输入值:pll_en:是否开启PLL,pll_origin:pll时钟源选择,pll_out:pll输出频率选择,sys_pll:系统时钟是否使用PLL时钟
输出值:无
返回值:无
***************************************************************/
void PLLClock_Config(TYPE_FUNCEN pll_en , SCU_PLL_Origin  pll_origin ,SCU_PLL_Out pll_out,TYPE_FUNCEN sys_pll )

14.demo程序同步库函数修改
-------------------------------------------------------------------------
V1.2.1
-------------------------------------------------------------------------
15.为所有工程添加InitRam.c,并且修改_Startup.S文件,增加InitRam
函数,修改flash_demo和Iapdemo,使Flash相关操作在RAM中运行。
16.修改了hr8p506_iap_table.c和hr8p506_iap_table.h,增加了IAPRead函数
17.修改了HR8P506_startup.s, 增加了IP模块校准值加载代码
18.更新了InitRam.c函数
19.更新了system_HR8P506.c 中SystemCoreClock = 16000000
20.更新了RTC->CON.PON 清零在RTC初始化时的顺序
21.修改了项目中InitRam.c函数存放路径, 从原先的Library文件夹改到iDesigner_StartUp文件夹


2017.6.27
1.修改Library文件夹内文本格式,符合Linux编程规范。
2.检测并修改库文件中清除中断标志位的函数。清除时由以前的 “|=” 改为 “=”。

2017.7.4
1.去除RTC里面不支持bitband的寄存器的位定义,并修改相应的demo
2.宏定义WDT_Clear()改为{WDT_RegUnLock();WDT->INTCLR.Word = 0;WDT_RegLock();}
2017.7.5
1.去除头文件里RTC_YMDW的位定义,并修改相关demo程序

2017.7.10
   
1.修改lib_adc.c ,lib_adc.h 增加ADC_GetIEStatus函数和 ADC_TYPE_IE 枚举体 。
2.lib_uart.c 增加UART_AutoBaudConfig,自动检测并设置波特率。
3.lib_euart.c 修改了发送接收函数,U7816变为EUART。
-------------------------------------------------------------------------
V1.2.2
-------------------------------------------------------------------------
2017.7.28
1."SCU_OpenXTAL"函数增加“SCU->SCLKEN0.XTAL_LP = 0;”
2017.7.32
1."PLLClock_Config"函数增加“SCU->SCLKEN0.XTAL_LP = 0;”


评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖 顶 踩
回复

使用道具 举报

沙发
我去请猴子 发表于 2018-6-1 14:25 | 只看该作者
M0上操作系统没啥意义啊
回复

使用道具 举报

板凳
 楼主| mai1024 发表于 2018-6-17 13:11 | 只看该作者
我去请猴子 发表于 2018-6-1 14:25
M0上操作系统没啥意义啊

节约成本,跑起来还行,内存压到4k,代码13k,能用。

评分

参与人数 1黑币 +40 收起 理由
admin + 40 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|单片机论坛 |51Hei单片机16群 联系QQ:125739409;技术交流QQ群7344883

Powered by 单片机教程网

快速回复 返回顶部 返回列表