华芯微特开发论坛

 找回密码
 立即注册
搜索
热搜: SWM341 资料
查看: 745|回复: 0

swm34 c/c++ 混编

[复制链接]

8

主题

27

帖子

120

积分

注册会员

Rank: 2

积分
120
发表于 2024-9-25 14:19:13 | 显示全部楼层 |阅读模式

最近在stm系列跑c++

今天捡起swm, 测试了一把。 由于MDK需要microlib支持,资料都说microlib不支持c++, 放弃了在microlib。(也不知道具体是哪些函数,不折腾)

回到GCC 编译器
mynumber.h/c
  1. #ifndef __MYNUMBER_H
  2. #define __MYNUMBER_H

  3. class MyNumber
  4. {

  5. public:
  6.         MyNumber();
  7.         int MyAdd(int a, int b);
  8. };

  9. #endif

  10. #include "mynumber.h"

  11. // MyNumber mynum;

  12. MyNumber::MyNumber() {};
  13. int MyNumber::MyAdd(int a, int b)
  14. {
  15.         return a + b;
  16. }
复制代码


cpp_start.h/c
  1. #ifndef __ADD_H
  2. #define __ADD_H


  3. #ifdef __cplusplus
  4. extern "C"
  5. {
  6. #endif
  7.         int my_add(int a, int b);
  8. #ifdef __cplusplus
  9. }
  10. #endif

  11. #endif

  12. #include "cpp_start.h"
  13. #include "mynumber.h"

  14. MyNumber mynum;

  15. int my_add(int a, int b)
  16. {
  17.         return mynum.MyAdd(a, b);
  18. }
复制代码


taks
  1. void test_Task(void *argument)
  2. {
  3.     for (;;)
  4.     {
  5.                 // printf("SystemCoreClock  ==>> %d \r\n",SystemCoreClock);
  6.                 log_i("MSG : SystemCoreClock  ==>> %d \r\n",SystemCoreClock);
  7.                 log_i("C++  add %d \r\n", my_add(6,7));
  8.                 osDelay(2000);
  9.     }
  10. }
复制代码
result
  1. [36;22mI/NO_TAG          [] (46 test_Task)MSG : SystemCoreClock  ==>> add 13
  2. [0m
  3. [36;22mI/NO_TAG          [] (55 led_Task)MAIN :  ----[0m
  4. [36;22mI/NO_TAG          [] (55 led_Task)MAIN :  ----[0m
  5. [36;22mI/NO_TAG          [] (55 led_Task)MAIN :  ----[0m
  6. [36;22mI/NO_TAG          [] (45 test_Task)MSG : SystemCoreClock  ==>> 120000000
  7. [0m
  8. [36;22mI/NO_TAG          [] (46 test_Task)MSG : SystemCoreClock  ==>> add 13
  9. [0m
  10. [36;22mI/NO_TAG          [] (55 led_Task)MAIN :  ----[0m
  11. [36;22mI/NO_TAG          [] (55 led_Task)MAIN :  ----[0m
  12. [36;22mI/NO_TAG          [] (45 test_Task)MSG : SystemCoreClock  ==>> 120000000
  13. [0m
  14. [36;22mI/NO_TAG          [] (46 test_Task)MSG : SystemCoreClock  ==>> add 13
  15. [0m
  16. [36;22mI/NO_TAG          [] (55 led_Task)MAIN :  ----[0m
  17. [36;22mI/NO_TAG          [] (55 led_Task)MAIN :  ----[0m
  18. [36;22mI/NO_TAG          [] (45 test_Task)MSG : SystemCoreClock  ==>> 120000000
  19. [0m
  20. [36;22mI/NO_TAG          [] (46 test_Task)MSG : SystemCoreClock  ==>> add 13
  21. [0m
  22. [36;22mI/NO_TAG          [] (55 led_Task)MAIN :  ----[0m
  23. [36;22mI/NO_TAG          [] (55 led_Task)MAIN :  ----[0m
复制代码
C++ 可以在swm34 上编译运行(编译器 arm-none-eabi-g++)


回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|华芯微特开发论坛

GMT+8, 2025-1-10 06:46 , Processed in 0.029053 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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