打印
[RISC-V MCU 应用开发]

CH32V103 的 C 项目转换为 C++

[复制链接]
2193|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hiliu123456|  楼主 | 2022-3-18 14:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
C++, ar, ni, TE, ST, start
使用 MounRiver Studio Version: v1.60 生成的 CH32V103 的 C 项目
操作步骤
1.  在 MounRiver Studio 中 选中该项目
2.  点选 菜单 File / New / Other ... / Convert to a C/C++ project .....
     2.1. 在出现的对话框中,
     2.1.1.  在 Convert to C/C++ 中选 C++ Project
     2.1.2.  不选 Specify project type
     2.1.3.  点击 Finish 完成
3. 在启动代码中添加 初始化 C++ 的内容
    3.1.  在 system_ch32v10x.c 中添加如下代码:
extern void (*__preinit_array_start[]) (void) __attribute__((weak));
extern void (*__preinit_array_end[]) (void) __attribute__((weak));
extern void (*__init_array_start[]) (void) __attribute__((weak));
extern void (*__init_array_end[]) (void) __attribute__((weak));
extern void (*__fini_array_start[]) (void) __attribute__((weak));
extern void (*__fini_array_end[]) (void) __attribute__((weak));

void __run_init_array (void)
{
  int count;
  int i;

  count = __preinit_array_end - __preinit_array_start;
  for (i = 0; i < count; i++)     __preinit_array_start ();

  count = __init_array_end - __init_array_start;
  for (i = 0; i < count; i++)     __init_array_start ();
}


    3.2. 在 startup_ch32v10x.s  加一行代码:  jal __run_init_array  , 位置如下
jal  SystemInit
  jal __run_init_array
        la t0, main
        csrw mepc, t0



使用特权

评论回复

相关帖子

沙发
海滨消消| | 2022-6-22 16:43 | 只看该作者
不错,学习一下,简明扼要

使用特权

评论回复
板凳
jtracy3| | 2022-7-4 15:54 | 只看该作者
这个没有用过呢。  

使用特权

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

本版积分规则

1

主题

2

帖子

0

粉丝