找回密码
 立即注册

QQ登录

只需一步,快速开始

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

ucosiii移植到stm32f7源码

[复制链接]
跳转到指定楼层
楼主
ID:393586 发表于 2018-10-12 10:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
自己学着将ucosiii移植到stm32f7中了

单片机源程序如下:
  1. #include "main.h"
  2. #include "stm32f7xx_hal.h"
  3. #include "sysclk.h"
  4. #include "uart.h"
  5. #include "stdio.h"
  6. #include "os.h"

  7. int fputc(int ch, FILE *f);

  8. #define START_TASK_PRIO 6u
  9. #define START_STK_SIZE 128
  10. OS_TCB StartTaskTCB;
  11. CPU_STK START_TASK_STK[START_STK_SIZE];
  12. void Start_Task(void *p_arg);

  13. #define TASK1_TASK_PRIO 7u
  14. #define TASK1_STK_SIZE 128
  15. OS_TCB TASK1_TCB;
  16. CPU_STK TASK1_TASK_STK[TASK1_STK_SIZE];
  17. void task1(void *p_arg);


  18. int main(void)   
  19. {
  20.   HAL_Init();
  21.   Sysclk_config();
  22.         USART1_UART_Init(19200);
  23.         printf("usart1 config!\n");
  24.         OS_ERR err;
  25.   CPU_SR_ALLOC();
  26.         OSInit(&err);
  27.         CPU_CRITICAL_ENTER();
  28.         OSTaskCreate(
  29.                     (OS_TCB *)    &StartTaskTCB,
  30.                     (CPU_CHAR*)   "start_task",
  31.                     (OS_TASK_PTR) Start_Task,
  32.                     (void*)       0u,
  33.                     ( OS_PRIO )   START_TASK_PRIO,
  34.                     (CPU_STK *)   &START_TASK_STK[0],
  35.                     (CPU_STK_SIZE)START_STK_SIZE/10,
  36.                     (CPU_STK_SIZE)START_STK_SIZE,
  37.                     (OS_MSG_QTY)  0u,
  38.                     (OS_TICK)     0u,
  39.                     (void*)       0u,
  40.                     (OS_OPT)      OS_OPT_TASK_STK_CHK | OS_OPT_TASK_STK_CLR,
  41.                     (OS_ERR*)     &err);
  42.         CPU_CRITICAL_EXIT();
  43.                                                        
  44.         OSStart(&err);                                        
  45. }

  46. void Start_Task(void *p_arg){
  47.         OS_ERR err;
  48.         CPU_SR_ALLOC();
  49.         p_arg=p_arg;
  50.         CPU_CRITICAL_ENTER();       
  51.         OSTaskCreate(
  52.                     (OS_TCB *)    &TASK1_TCB,
  53.                     (CPU_CHAR*)   "task1",
  54.                     (OS_TASK_PTR) task1,
  55.                     (void*)       0u,
  56.                     ( OS_PRIO )   TASK1_TASK_PRIO,
  57.                     (CPU_STK *)   &TASK1_TASK_STK[0],
  58.                     (CPU_STK_SIZE)TASK1_STK_SIZE/10,
  59.                     (CPU_STK_SIZE)TASK1_STK_SIZE,
  60.                     (OS_MSG_QTY)  0u,
  61.                     (OS_TICK)     0u,
  62.                     (void*)       0u,
  63.                     (OS_OPT)      OS_OPT_TASK_STK_CHK | OS_OPT_TASK_STK_CLR,
  64.                     (OS_ERR*)     &err);                                       
  65.         CPU_CRITICAL_EXIT();
  66.         printf("creat start task!\n");
  67. }

  68. void task1(void *p_arg){
  69.           p_arg=p_arg;
  70.     CPU_SR_ALLOC();
  71.           while(1){
  72.                 CPU_CRITICAL_ENTER();
  73.                 printf("creat task1!\n");
  74.                 CPU_CRITICAL_EXIT();
  75.                 HAL_Delay(2000);
  76.         }
  77. }


  78. int fputc(int ch, FILE *f)
  79. {
  80.     HAL_UART_Transmit(&huart1 , (uint8_t *)&ch, 1, 2);
  81.        
  82.     return ch;
  83. }


  84. void _Error_Handler(char *file, int line)
  85. {

  86.   while(1)
  87.   {
  88.   }
  89. }

  90. /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
复制代码

所有资料51hei提供下载:
ucosiii_stm32f746_template.rar (1.63 MB, 下载次数: 19)


评分

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

查看全部评分

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

使用道具 举报

沙发
ID:282538 发表于 2019-5-27 10:10 | 只看该作者
谢谢分享
~~
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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