请选择 进入手机版 | 继续访问电脑版

硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2587|回复: 20
收起左侧

STM32L0系列的怎么移植ucosiii?

[复制链接]

76

主题

237

回帖

465

积分

高级会员

积分
465
发表于 2021-1-14 10:25:05 | 显示全部楼层 |阅读模式
L0系列的是M0+的内核,我在UCOS官网上没找到基于L0的源码,只有L1和L4的,都不是M0+内核的,该如何移植系统呢?是不是得改那些汇编文件啊。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106398
QQ
发表于 2021-1-14 11:11:04 | 显示全部楼层
使用最新的3.08,里面有对应的M0的port文件,添加上即可使用。
回复

使用道具 举报

76

主题

237

回帖

465

积分

高级会员

积分
465
 楼主| 发表于 2021-1-14 12:58:58 | 显示全部楼层
eric2013 发表于 2021-1-14 11:11
使用最新的3.08,里面有对应的M0的port文件,添加上即可使用。

官网没找到有3.08的啊,L系列的没那么高版本,你说的是H7的吧?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106398
QQ
发表于 2021-1-15 10:18:45 | 显示全部楼层
kokoromi 发表于 2021-1-14 12:58
官网没找到有3.08的啊,L系列的没那么高版本,你说的是H7的吧?

uCOS全家桶PDF文档和源码整理汇总贴,提供论坛,百度云和腾讯云下载(2020-03-09)
http://www.armbbs.cn/forum.php?m ... 6764&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

76

主题

237

回帖

465

积分

高级会员

积分
465
 楼主| 发表于 2021-1-15 10:29:00 | 显示全部楼层
eric2013 发表于 2021-1-15 10:18
uCOS全家桶PDF文档和源码整理汇总贴,提供论坛,百度云和腾讯云下载(2020-03-09)
http://www.armbbs.c ...

硬汉果然够硬
回复

使用道具 举报

76

主题

237

回帖

465

积分

高级会员

积分
465
 楼主| 发表于 2021-1-15 10:42:37 | 显示全部楼层
eric2013 发表于 2021-1-15 10:18
uCOS全家桶PDF文档和源码整理汇总贴,提供论坛,百度云和腾讯云下载(2020-03-09)
http://www.armbbs.c ...

uC-OS3-master.zip 这个源码看了下和之前的结构很不一样,有没有介绍如何使用以及各个文件夹和文件的帖子?
回复

使用道具 举报

76

主题

237

回帖

465

积分

高级会员

积分
465
 楼主| 发表于 2021-1-15 11:14:34 | 显示全部楼层
官方文档里的画红框的这个ARM-Cortex-M0文件夹,在源码目录里没有啊,什么情况?
无标题.png

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106398
QQ
发表于 2021-1-15 15:09:15 | 显示全部楼层
kokoromi 发表于 2021-1-15 11:14
官方文档里的画红框的这个ARM-Cortex-M0文件夹,在源码目录里没有啊,什么情况?

M0是V6架构
QQ截图20210115150436.png

回复

使用道具 举报

76

主题

237

回帖

465

积分

高级会员

积分
465
 楼主| 发表于 2021-1-15 15:15:58 | 显示全部楼层

找到了,谢谢。
看了下,源码结构和之前大不相同啊,原来的uC/CPU和uC/LIB都单独拿出来了,我还在uCOS3里面找半天...
这个新的源码移植有相关帖子吗?

PS:__dbg_uCOS-III.c 源码里这个文件干啥的?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106398
QQ
发表于 2021-1-16 12:55:44 | 显示全部楼层
kokoromi 发表于 2021-1-15 15:15
找到了,谢谢。
看了下,源码结构和之前大不相同啊,原来的uC/CPU和uC/LIB都单独拿出来了,我还在uCOS3 ...

1、移植看我本帖4楼发的就行
2、这很早就有了,没啥用。
回复

使用道具 举报

76

主题

237

回帖

465

积分

高级会员

积分
465
 楼主| 发表于 2021-1-16 14:30:03 | 显示全部楼层
eric2013 发表于 2021-1-16 12:55
1、移植看我本帖4楼发的就行
2、这很早就有了,没啥用。

4楼的链接里面只有全家筒的源码下载地址和说明文档,没看到新版系统的移植说明呀
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106398
QQ
发表于 2021-1-17 08:49:21 | 显示全部楼层
kokoromi 发表于 2021-1-16 14:30
4楼的链接里面只有全家筒的源码下载地址和说明文档,没看到新版系统的移植说明呀

看错了,是这个

基于V5,V6和V7的最新版uCOS-III V3.08.00程序模板,含MDK和IAR两个版本,支持uC/Probe(2020-03-19)
http://www.armbbs.cn/forum.php?m ... 6918&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

76

主题

237

回帖

465

积分

高级会员

积分
465
 楼主| 发表于 2021-1-18 13:26:58 | 显示全部楼层
eric2013 发表于 2021-1-17 08:49
看错了,是这个

基于V5,V6和V7的最新版uCOS-III V3.08.00程序模板,含MDK和IAR两个版本,支持uC/Prob ...

谢谢~
回复

使用道具 举报

76

主题

237

回帖

465

积分

高级会员

积分
465
 楼主| 发表于 2021-1-18 15:22:24 | 显示全部楼层
还想请教个问题,uC-CPU-master文件夹下的cpu_cache.h这个文件是做什么的?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106398
QQ
发表于 2021-1-18 15:48:29 | 显示全部楼层
kokoromi 发表于 2021-1-18 15:22
还想请教个问题,uC-CPU-master文件夹下的cpu_cache.h这个文件是做什么的?

不用管,用不上。
回复

使用道具 举报

76

主题

237

回帖

465

积分

高级会员

积分
465
 楼主| 发表于 2021-1-18 16:17:19 | 显示全部楼层
eric2013 发表于 2021-1-18 15:48
不用管,用不上。

好的,3Q~
回复

使用道具 举报

76

主题

237

回帖

465

积分

高级会员

积分
465
 楼主| 发表于 2021-1-19 10:15:05 | 显示全部楼层
eric2013 发表于 2021-1-18 15:48
不用管,用不上。

大神,还有个问题,uC-LIB-master文件夹下的Ports里面,没有M0+内核的移植文件咋办?
无标题.png
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106398
QQ
发表于 2021-1-19 12:43:09 | 显示全部楼层
kokoromi 发表于 2021-1-19 10:15
大神,还有个问题,uC-LIB-master文件夹下的Ports里面,没有M0+内核的移植文件咋办?

这个选个M3的使用即可
回复

使用道具 举报

76

主题

237

回帖

465

积分

高级会员

积分
465
 楼主| 发表于 2021-1-19 13:21:51 | 显示全部楼层
eric2013 发表于 2021-1-19 12:43
这个选个M3的使用即可

M3的和M0+的通用嘛?
回复

使用道具 举报

76

主题

237

回帖

465

积分

高级会员

积分
465
 楼主| 发表于 2021-1-20 10:20:56 | 显示全部楼层
eric2013 发表于 2021-1-19 12:43
这个选个M3的使用即可

我把M3的加进去用IAR编译提示一堆语法错误、操作数过多等错误提示,什么情况,选的的确是IAR文件夹里的,怎么这么多错误?

  1. ;********************************************************************************************************
  2. ;                                               uC/LIB
  3. ;                                       Custom Library Modules
  4. ;
  5. ;                    Copyright 2004-2020 Silicon Laboratories Inc. www.silabs.com
  6. ;
  7. ;                                 SPDX-License-Identifier: APACHE-2.0
  8. ;
  9. ;               This software is subject to an open source license and is distributed by
  10. ;                Silicon Laboratories Inc. pursuant to the terms of the Apache License,
  11. ;                    Version 2.0 available at www.apache.org/licenses/LICENSE-2.0.
  12. ;
  13. ;********************************************************************************************************


  14. ;********************************************************************************************************
  15. ;
  16. ;                                     STANDARD MEMORY OPERATIONS
  17. ;
  18. ;                                           ARM-Cortex-M3
  19. ;                                           IAR Compiler
  20. ;
  21. ; Filename : lib_mem_a.asm
  22. ; Version  : V1.39.00
  23. ;********************************************************************************************************
  24. ; Note(s)  : (1) NO compiler-supplied standard library functions are used in library or product software.
  25. ;
  26. ;                (a) ALL standard library functions are implemented in the custom library modules :
  27. ;
  28. ;                    (1) \<Custom Library Directory>\lib*.*
  29. ;
  30. ;                    (2) \<Custom Library Directory>\Ports\<cpu>\<compiler>\lib*_a.*
  31. ;
  32. ;                          where
  33. ;                                  <Custom Library Directory>      directory path for custom library software
  34. ;                                  <cpu>                           directory name for specific processor (CPU)
  35. ;                                  <compiler>                      directory name for specific compiler
  36. ;
  37. ;                (b) Product-specific library functions are implemented in individual products.
  38. ;
  39. ;            (2) Assumes ARM CPU mode configured for Little Endian.
  40. ;********************************************************************************************************


  41. ;********************************************************************************************************
  42. ;                                           PUBLIC FUNCTIONS
  43. ;********************************************************************************************************

  44.         PUBLIC  Mem_Copy


  45. ;********************************************************************************************************
  46. ;                                      CODE GENERATION DIRECTIVES
  47. ;********************************************************************************************************

  48.         RSEG CODE:CODE:NOROOT(2)


  49. ;********************************************************************************************************
  50. ;                                             Mem_Copy()
  51. ;
  52. ; Description : Copy data octets from one buffer to another buffer.
  53. ;
  54. ; Argument(s) : pdest       Pointer to destination memory buffer.
  55. ;
  56. ;               psrc        Pointer to source      memory buffer.
  57. ;
  58. ;               size        Number of data buffer octets to copy.
  59. ;
  60. ; Return(s)   : none.
  61. ;
  62. ; Caller(s)   : Application.
  63. ;
  64. ; Note(s)     : (1) Null copies allowed (i.e. 0-octet size).
  65. ;
  66. ;               (2) Memory buffers NOT checked for overlapping.
  67. ;
  68. ;               (3) Modulo arithmetic is used to determine whether a memory buffer starts on a 'CPU_ALIGN'
  69. ;                   address boundary.
  70. ;
  71. ;               (4) ARM Cortex-M3 processors use a subset of the ARM Thumb-2 instruction set which does
  72. ;                   NOT support 16-bit conditional branch instructions but ONLY supports 8-bit conditional
  73. ;                   branch instructions.
  74. ;
  75. ;                   Therefore, branches exceeding 8-bit, signed, relative offsets :
  76. ;
  77. ;                   (a) CANNOT be implemented with     conditional branches; but ...
  78. ;                   (b) MUST   be implemented with non-conditional branches.
  79. ;********************************************************************************************************

  80. ; void  Mem_Copy (void        *pdest,       ;  ==>  R0
  81. ;                 void        *psrc,        ;  ==>  R1
  82. ;                 CPU_SIZE_T   size)        ;  ==>  R2

  83. Mem_Copy:
  84.         CMP         R0, #0
  85.         BNE         Mem_Copy_1
  86.         BX          LR                      ; return if pdest == NULL

  87. Mem_Copy_1:
  88.         CMP         R1, #0
  89.         BNE         Mem_Copy_2
  90.         BX          LR                      ; return if psrc  == NULL

  91. Mem_Copy_2:
  92.         CMP         R2, #0
  93.         BNE         Mem_Copy_3
  94.         BX          LR                      ; return if size  == 0

  95. Mem_Copy_3:
  96.         STMFD       SP!, {R3-R12}           ; save registers on stack


  97. Chk_Align_32:                               ; check if both dest & src 32-bit aligned
  98.         AND         R3, R0, #0x03
  99.         AND         R4, R1, #0x03
  100.         CMP         R3, R4
  101.         BNE         Chk_Align_16            ; not 32-bit aligned, check for 16-bit alignment

  102.         RSB         R3, R3, #0x04           ; compute 1-2-3 pre-copy bytes (to align to the next 32-bit boundary)
  103.         AND         R3, R3, #0x03

  104. Pre_Copy_1:
  105.         CMP         R3, #1                  ; copy 1-2-3 bytes (to align to the next 32-bit boundary)
  106.         BCC         Copy_32_1               ; start real 32-bit copy
  107.         CMP         R2, #1                  ; check if any more data to copy
  108.         BCS         Pre_Copy_1_Cont
  109.         B           Mem_Copy_END            ;           no more data to copy (see Note #4b)

  110. Pre_Copy_1_Cont:
  111.         LDRB        R4, [R1], #1
  112.         STRB        R4, [R0], #1
  113.         SUB         R3, R3, #1
  114.         SUB         R2, R2, #1
  115.         B           Pre_Copy_1


  116. Chk_Align_16:                               ; check if both dest & src 16-bit aligned
  117.         AND         R3, R0, #0x01
  118.         AND         R4, R1, #0x01
  119.         CMP         R3, R4
  120.         BEQ         Pre_Copy_2
  121.         B           Copy_08_1               ; not 16-bit aligned, start 8-bit copy (see Note #4b)

  122. Pre_Copy_2:
  123.         CMP         R3, #1                  ; copy 1 byte (to align to the next 16-bit boundary)
  124.         BCC         Copy_16_1               ; start real 16-bit copy

  125.         LDRB        R4, [R1], #1
  126.         STRB        R4, [R0], #1
  127.         SUB         R3, R3, #1
  128.         SUB         R2, R2, #1
  129.         B           Pre_Copy_2


  130. Copy_32_1:
  131.         CMP         R2, #(04*10*09)         ; Copy 9 chunks of 10 32-bit words (360 octets per loop)
  132.         BCC         Copy_32_2
  133.         LDMIA       R1!, {R3-R12}
  134.         STMIA       R0!, {R3-R12}
  135.         LDMIA       R1!, {R3-R12}
  136.         STMIA       R0!, {R3-R12}
  137.         LDMIA       R1!, {R3-R12}
  138.         STMIA       R0!, {R3-R12}
  139.         LDMIA       R1!, {R3-R12}
  140.         STMIA       R0!, {R3-R12}
  141.         LDMIA       R1!, {R3-R12}
  142.         STMIA       R0!, {R3-R12}
  143.         LDMIA       R1!, {R3-R12}
  144.         STMIA       R0!, {R3-R12}
  145.         LDMIA       R1!, {R3-R12}
  146.         STMIA       R0!, {R3-R12}
  147.         LDMIA       R1!, {R3-R12}
  148.         STMIA       R0!, {R3-R12}
  149.         LDMIA       R1!, {R3-R12}
  150.         STMIA       R0!, {R3-R12}
  151.         SUB         R2, R2, #(04*10*09)
  152.         B           Copy_32_1

  153. Copy_32_2:
  154.         CMP         R2, #(04*10*01)         ; Copy chunks of 10 32-bit words (40 octets per loop)
  155.         BCC         Copy_32_3
  156.         LDMIA       R1!, {R3-R12}
  157.         STMIA       R0!, {R3-R12}
  158.         SUB         R2, R2, #(04*10*01)
  159.         B           Copy_32_2

  160. Copy_32_3:
  161.         CMP         R2, #(04*01*01)         ; Copy remaining 32-bit words
  162.         BCC         Copy_16_1
  163.         LDR         R3, [R1], #4
  164.         STR         R3, [R0], #4
  165.         SUB         R2, R2, #(04*01*01)
  166.         B           Copy_32_3

  167. Copy_16_1:
  168.         CMP         R2, #(02*01*16)         ; Copy chunks of 16 16-bit words (32 bytes per loop)
  169.         BCC         Copy_16_2
  170.         LDRH        R3, [R1], #2
  171.         STRH        R3, [R0], #2
  172.         LDRH        R3, [R1], #2
  173.         STRH        R3, [R0], #2
  174.         LDRH        R3, [R1], #2
  175.         STRH        R3, [R0], #2
  176.         LDRH        R3, [R1], #2
  177.         STRH        R3, [R0], #2
  178.         LDRH        R3, [R1], #2
  179.         STRH        R3, [R0], #2
  180.         LDRH        R3, [R1], #2
  181.         STRH        R3, [R0], #2
  182.         LDRH        R3, [R1], #2
  183.         STRH        R3, [R0], #2
  184.         LDRH        R3, [R1], #2
  185.         STRH        R3, [R0], #2
  186.         LDRH        R3, [R1], #2
  187.         STRH        R3, [R0], #2
  188.         LDRH        R3, [R1], #2
  189.         STRH        R3, [R0], #2
  190.         LDRH        R3, [R1], #2
  191.         STRH        R3, [R0], #2
  192.         LDRH        R3, [R1], #2
  193.         STRH        R3, [R0], #2
  194.         LDRH        R3, [R1], #2
  195.         STRH        R3, [R0], #2
  196.         LDRH        R3, [R1], #2
  197.         STRH        R3, [R0], #2
  198.         LDRH        R3, [R1], #2
  199.         STRH        R3, [R0], #2
  200.         LDRH        R3, [R1], #2
  201.         STRH        R3, [R0], #2
  202.         SUB         R2, R2, #(02*01*16)
  203.         B           Copy_16_1

  204. Copy_16_2:
  205.         CMP         R2, #(02*01*01)         ; Copy remaining 16-bit words
  206.         BCC         Copy_08_1
  207.         LDRH        R3, [R1], #2
  208.         STRH        R3, [R0], #2
  209.         SUB         R2, R2, #(02*01*01)
  210.         B           Copy_16_2

  211. Copy_08_1:
  212.         CMP         R2, #(01*01*16)         ; Copy chunks of 16 8-bit words (16 bytes per loop)
  213.         BCC         Copy_08_2
  214.         LDRB        R3, [R1], #1
  215.         STRB        R3, [R0], #1
  216.         LDRB        R3, [R1], #1
  217.         STRB        R3, [R0], #1
  218.         LDRB        R3, [R1], #1
  219.         STRB        R3, [R0], #1
  220.         LDRB        R3, [R1], #1
  221.         STRB        R3, [R0], #1
  222.         LDRB        R3, [R1], #1
  223.         STRB        R3, [R0], #1
  224.         LDRB        R3, [R1], #1
  225.         STRB        R3, [R0], #1
  226.         LDRB        R3, [R1], #1
  227.         STRB        R3, [R0], #1
  228.         LDRB        R3, [R1], #1
  229.         STRB        R3, [R0], #1
  230.         LDRB        R3, [R1], #1
  231.         STRB        R3, [R0], #1
  232.         LDRB        R3, [R1], #1
  233.         STRB        R3, [R0], #1
  234.         LDRB        R3, [R1], #1
  235.         STRB        R3, [R0], #1
  236.         LDRB        R3, [R1], #1
  237.         STRB        R3, [R0], #1
  238.         LDRB        R3, [R1], #1
  239.         STRB        R3, [R0], #1
  240.         LDRB        R3, [R1], #1
  241.         STRB        R3, [R0], #1
  242.         LDRB        R3, [R1], #1
  243.         STRB        R3, [R0], #1
  244.         LDRB        R3, [R1], #1
  245.         STRB        R3, [R0], #1
  246.         SUB         R2, R2, #(01*01*16)
  247.         B           Copy_08_1

  248. Copy_08_2:
  249.         CMP         R2, #(01*01*01)         ; Copy remaining 8-bit words
  250.         BCC         Mem_Copy_END
  251.         LDRB        R3, [R1], #1
  252.         STRB        R3, [R0], #1
  253.         SUB         R2, R2, #(01*01*01)
  254.         B           Copy_08_2


  255. Mem_Copy_END:
  256.         LDMFD       SP!, {R3-R12}           ; restore registers from stack
  257.         BX          LR                      ; return


  258.         END

复制代码
无标题.png
回复

使用道具 举报

210

主题

1041

回帖

1681

积分

至尊会员

More we do, more we can do.

积分
1681
发表于 2021-1-20 20:01:12 | 显示全部楼层
这个路径下:/Ports/ARM-Cortex-M/ARMv6-M
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-19 07:49 , Processed in 0.242163 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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