Skip to content

Commit c93dfa8

Browse files
committed
Upgrade RISC-V ToolChains for qemu-virt64 to gcc 12.x
fixes warning: rtthread.elf has a LOAD segment with RWX permissions c:/env-windows/tools/gnu_gcc/riscv64-linux-musleabi_for_i686-w64-mingw32/bin/../lib/gcc/riscv64-linux-musleabi/12.2.0/../../../../riscv64-linux-musleabi/bin/ld.exe: warning: rtthread.elf has a LOAD segment with RWX permissions Add normal-env.bat and fixes smart-env.bat
1 parent fbfc501 commit c93dfa8

File tree

8 files changed

+97
-66
lines changed

8 files changed

+97
-66
lines changed

.github/workflows/action_utest.yml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -87,20 +87,20 @@ jobs:
8787
- name: Install RISC-V ToolChains
8888
if: ${{ matrix.legs.QEMU_ARCH == 'riscv64' && matrix.legs.UTEST != 'rtsmart/riscv64' && success() }}
8989
run: |
90-
wget -q https://github.com/RT-Thread/toolchains-ci/releases/download/v1.4/riscv64-unknown-elf-toolchain-10.2.0-2020.12.8-x86_64-linux-ubuntu14.tar.gz
91-
sudo tar zxvf riscv64-unknown-elf-toolchain-10.2.0-2020.12.8-x86_64-linux-ubuntu14.tar.gz -C /opt
92-
/opt/riscv64-unknown-elf-toolchain-10.2.0-2020.12.8-x86_64-linux-ubuntu14/bin/riscv64-unknown-elf-gcc --version
93-
echo "RTT_EXEC_PATH=/opt/riscv64-unknown-elf-toolchain-10.2.0-2020.12.8-x86_64-linux-ubuntu14/bin" >> $GITHUB_ENV
90+
wget -q https://github.com/xpack-dev-tools/riscv-none-elf-gcc-xpack/releases/download/v12.3.0-2/xpack-riscv-none-elf-gcc-12.3.0-2-linux-x64.tar.gz
91+
sudo tar zxvf xpack-riscv-none-elf-gcc-12.3.0-2-linux-x64.tar.gz -C /opt
92+
/opt/xpack-riscv-none-elf-gcc-12.3.0-2/bin/riscv-none-elf-gcc --version
93+
echo "RTT_EXEC_PATH=/opt/xpack-riscv-none-elf-gcc-12.3.0-2/bin" >> $GITHUB_ENV
9494
9595
- name: Install RISC-V Musl ToolChains
9696
if: ${{ matrix.legs.QEMU_ARCH == 'riscv64' && matrix.legs.UTEST == 'rtsmart/riscv64' && success() }}
9797
shell: bash
9898
run: |
99-
wget -q https://github.com/RT-Thread/toolchains-ci/releases/download/v1.7/riscv64-linux-musleabi_for_x86_64-pc-linux-gnu_latest.tar.bz2
99+
wget -q https://download.rt-thread.org/download/rt-smart/toolchains/riscv64-linux-musleabi_for_x86_64-pc-linux-gnu_latest.tar.bz2
100100
sudo tar xjf riscv64-linux-musleabi_for_x86_64-pc-linux-gnu_latest.tar.bz2 -C /opt
101-
/opt/riscv64-linux-musleabi_for_x86_64-pc-linux-gnu/bin/riscv64-unknown-linux-musl-gcc --version
101+
/opt/riscv64-linux-musleabi_for_x86_64-pc-linux-gnu/bin/riscv64-linux-musleabi-gcc --version
102102
echo "RTT_EXEC_PATH=/opt/riscv64-linux-musleabi_for_x86_64-pc-linux-gnu/bin" >> $GITHUB_ENV
103-
echo "RTT_CC_PREFIX=riscv64-unknown-linux-musl-" >> $GITHUB_ENV
103+
echo "RTT_CC_PREFIX=riscv64-linux-musleabi-" >> $GITHUB_ENV
104104
105105
- name: Install AARCH64 Musl ToolChains
106106
if: ${{ matrix.legs.QEMU_ARCH == 'aarch64' && matrix.legs.UTEST == 'rtsmart/aarch64' && success() }}

.github/workflows/utest_auto_run.yml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -110,21 +110,21 @@ jobs:
110110
# Install RISC-V ToolChains
111111
if [[ "${{ matrix.platform.QEMU_ARCH }}" == "riscv64" && "${{ matrix.platform.KERNEL }}" == "standard" ]]; then
112112
echo "Starting install RISC-V ToolChains"
113-
wget -q https://github.com/RT-Thread/toolchains-ci/releases/download/v1.4/riscv64-unknown-elf-toolchain-10.2.0-2020.12.8-x86_64-linux-ubuntu14.tar.gz
114-
sudo tar zxvf riscv64-unknown-elf-toolchain-10.2.0-2020.12.8-x86_64-linux-ubuntu14.tar.gz -C /opt
115-
/opt/riscv64-unknown-elf-toolchain-10.2.0-2020.12.8-x86_64-linux-ubuntu14/bin/riscv64-unknown-elf-gcc --version
116-
echo "RTT_EXEC_PATH=/opt/riscv64-unknown-elf-toolchain-10.2.0-2020.12.8-x86_64-linux-ubuntu14/bin" >> $GITHUB_ENV
113+
wget -q https://github.com/xpack-dev-tools/riscv-none-elf-gcc-xpack/releases/download/v12.3.0-2/xpack-riscv-none-elf-gcc-12.3.0-2-linux-x64.tar.gz
114+
sudo tar zxvf xpack-riscv-none-elf-gcc-12.3.0-2-linux-x64.tar.gz -C /opt
115+
/opt/xpack-riscv-none-elf-gcc-12.3.0-2/bin/riscv-none-elf-gcc --version
116+
echo "RTT_EXEC_PATH=/opt/xpack-riscv-none-elf-gcc-12.3.0-2/bin" >> $GITHUB_ENV
117117
echo "TOOLCHAIN_INSTALLED=riscv" >> $GITHUB_ENV
118118
fi
119119
120120
# Install RISC-V Musl ToolChains
121121
if [[ "${{ matrix.platform.QEMU_ARCH }}" == "riscv64" && "${{ matrix.platform.KERNEL }}" == "rtsmart" ]]; then
122122
echo "Starting install RISC-V Musl ToolChains"
123-
wget -q https://github.com/RT-Thread/toolchains-ci/releases/download/v1.7/riscv64-linux-musleabi_for_x86_64-pc-linux-gnu_latest.tar.bz2
123+
wget -q https://download.rt-thread.org/download/rt-smart/toolchains/riscv64-linux-musleabi_for_x86_64-pc-linux-gnu_latest.tar.bz2
124124
sudo tar xjf riscv64-linux-musleabi_for_x86_64-pc-linux-gnu_latest.tar.bz2 -C /opt
125-
/opt/riscv64-linux-musleabi_for_x86_64-pc-linux-gnu/bin/riscv64-unknown-linux-musl-gcc --version
125+
/opt/riscv64-linux-musleabi_for_x86_64-pc-linux-gnu/bin/riscv64-linux-musleabi-gcc --version
126126
echo "RTT_EXEC_PATH=/opt/riscv64-linux-musleabi_for_x86_64-pc-linux-gnu/bin" >> $GITHUB_ENV
127-
echo "RTT_CC_PREFIX=riscv64-unknown-linux-musl-" >> $GITHUB_ENV
127+
echo "RTT_CC_PREFIX=riscv64-linux-musleabi-" >> $GITHUB_ENV
128128
echo "TOOLCHAIN_INSTALLED=riscv-musl" >> $GITHUB_ENV
129129
fi
130130

bsp/qemu-virt64-riscv/README.md

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -49,31 +49,31 @@ The specific toolchain used is consistent with the official RT-Thread. For the s
4949
- name: Install RISC-V ToolChains
5050
if: ${{ matrix.legs.QEMU_ARCH == 'riscv64' && matrix.legs.UTEST != 'rtsmart/riscv64' && success() }}
5151
run: |
52-
wget -q https://github.com/RT-Thread/toolchains-ci/releases/download/v1.4/riscv64-unknown-elf-toolchain-10.2.0-2020.12.8-x86_64-linux-ubuntu14.tar.gz
53-
sudo tar zxvf riscv64-unknown-elf-toolchain-10.2.0-2020.12.8-x86_64-linux-ubuntu14.tar.gz -C /opt
54-
/opt/riscv64-unknown-elf-toolchain-10.2.0-2020.12.8-x86_64-linux-ubuntu14/bin/riscv64-unknown-elf-gcc --version
55-
echo "RTT_EXEC_PATH=/opt/riscv64-unknown-elf-toolchain-10.2.0-2020.12.8-x86_64-linux-ubuntu14/bin" >> $GITHUB_ENV
52+
wget -q https://github.com/xpack-dev-tools/riscv-none-elf-gcc-xpack/releases/download/v12.3.0-2/xpack-riscv-none-elf-gcc-12.3.0-2-linux-x64.tar.gz
53+
sudo tar zxvf xpack-riscv-none-elf-gcc-12.3.0-2-linux-x64.tar.gz -C /opt
54+
/opt/xpack-riscv-none-elf-gcc-12.3.0-2/bin/riscv-none-elf-gcc --version
55+
echo "RTT_EXEC_PATH=/opt/xpack-riscv-none-elf-gcc-12.3.0-2/bin" >> $GITHUB_ENV
5656
5757
- name: Install RISC-V Musl ToolChains
5858
if: ${{ matrix.legs.QEMU_ARCH == 'riscv64' && matrix.legs.UTEST == 'rtsmart/riscv64' && success() }}
5959
shell: bash
6060
run: |
61-
wget -q https://github.com/RT-Thread/toolchains-ci/releases/download/v1.7/riscv64-linux-musleabi_for_x86_64-pc-linux-gnu_latest.tar.bz2
61+
wget -q https://download.rt-thread.org/download/rt-smart/toolchains/riscv64-linux-musleabi_for_x86_64-pc-linux-gnu_latest.tar.bz2
6262
sudo tar xjf riscv64-linux-musleabi_for_x86_64-pc-linux-gnu_latest.tar.bz2 -C /opt
63-
/opt/riscv64-linux-musleabi_for_x86_64-pc-linux-gnu/bin/riscv64-unknown-linux-musl-gcc --version
63+
/opt/riscv64-linux-musleabi_for_x86_64-pc-linux-gnu/bin/riscv64-linux-musleabi-gcc --version
6464
echo "RTT_EXEC_PATH=/opt/riscv64-linux-musleabi_for_x86_64-pc-linux-gnu/bin" >> $GITHUB_ENV
65-
echo "RTT_CC_PREFIX=riscv64-unknown-linux-musl-" >> $GITHUB_ENV
65+
echo "RTT_CC_PREFIX=riscv64-linux-musleabi-" >> $GITHUB_ENV
6666
```
6767
68-
Among them, `riscv64-unknown-elf-gcc` is used to build the RT-Thread Standard version, and `riscv64-unknown-linux-musl-gcc` is used to build the RT-Thread Smart version. Download them to your local computer according to the links shown above and decompress them.
68+
Among them, `riscv-none-elf-gcc` is used to build the RT-Thread Standard version, and `riscv64-linux-musleabi-gcc` is used to build the RT-Thread Smart version. Download them to your local computer according to the links shown above and decompress them.
6969

7070
## 2.2. Setting RT-Thread toolchain environment variables
7171

7272
There are three environment variables related to the RT-Thread toolchain
7373

7474
- `RTT_CC` is the toolchain name, which is `"gcc"` here
75-
- `RTT_CC_PREFIX`: is the toolchain prefix, which is `"riscv64-unknown-elf-"` for the Standard version and `"riscv64-unknown-linux-musl-"` for the Smart version.
76-
- `RTT_EXEC_PATH`: the path where the bin folder of the toolchain is located, such as `"$HOME/tools/riscv64-unknown-elf-toolchain-10.2.0-2020.12.8-x86_64-linux-ubuntu14/bin"`. This is set according to the actual path after personal download and decompression. Note that the toolchains of the RT-Thread standard version and the Smart version are two different versions, and the path name of `RTT_EXEC_PATH` must be set to `bin`.
75+
- `RTT_CC_PREFIX`: is the toolchain prefix, which is `"riscv-none-elf-"` for the Standard version and `"riscv64-linux-musleabi-"` for the Smart version.
76+
- `RTT_EXEC_PATH`: the path where the bin folder of the toolchain is located, such as `"$HOME/tools/xpack-riscv-none-elf-gcc-12.3.0-2/bin"`. This is set according to the actual path after personal download and decompression. Note that the toolchains of the RT-Thread standard version and the Smart version are two different versions, and the path name of `RTT_EXEC_PATH` must be set to `bin`.
7777

7878
If you use them all the time, it is recommended to export these three environment variables in the `.bashrc` file.
7979

@@ -381,8 +381,8 @@ etc mnt run tc var
381381
```bash
382382
Memory region Used Size Region Size %age Used
383383
SRAM: 225856 B 16 MB 1.35%
384-
riscv64-unknown-elf-objcopy -O binary rtthread.elf rtthread.bin
385-
riscv64-unknown-elf-size rtthread.elf
384+
riscv-none-elf-objcopy -O binary rtthread.elf rtthread.bin
385+
riscv-none-elf-size rtthread.elf
386386
text data bss dec hex filename
387387
150907 3664 71268 225839 3722f rtthread.elf
388388
```
@@ -392,8 +392,8 @@ etc mnt run tc var
392392
```bash
393393
Memory region Used Size Region Size %age Used
394394
SRAM: 209376 B 16 MB 1.25%
395-
riscv64-unknown-elf-objcopy -O binary rtthread.elf rtthread.bin
396-
riscv64-unknown-elf-size rtthread.elf
395+
riscv-none-elf-objcopy -O binary rtthread.elf rtthread.bin
396+
riscv-none-elf-size rtthread.elf
397397
text data bss dec hex filename
398398
138739 1356 69276 209371 331db rtthread.elf
399399
```

bsp/qemu-virt64-riscv/README_cn.md

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -49,31 +49,31 @@ Codename: jammy
4949
- name: Install RISC-V ToolChains
5050
if: ${{ matrix.legs.QEMU_ARCH == 'riscv64' && matrix.legs.UTEST != 'rtsmart/riscv64' && success() }}
5151
run: |
52-
wget -q https://github.com/RT-Thread/toolchains-ci/releases/download/v1.4/riscv64-unknown-elf-toolchain-10.2.0-2020.12.8-x86_64-linux-ubuntu14.tar.gz
53-
sudo tar zxvf riscv64-unknown-elf-toolchain-10.2.0-2020.12.8-x86_64-linux-ubuntu14.tar.gz -C /opt
54-
/opt/riscv64-unknown-elf-toolchain-10.2.0-2020.12.8-x86_64-linux-ubuntu14/bin/riscv64-unknown-elf-gcc --version
55-
echo "RTT_EXEC_PATH=/opt/riscv64-unknown-elf-toolchain-10.2.0-2020.12.8-x86_64-linux-ubuntu14/bin" >> $GITHUB_ENV
52+
wget -q https://github.com/xpack-dev-tools/riscv-none-elf-gcc-xpack/releases/download/v12.3.0-2/xpack-riscv-none-elf-gcc-12.3.0-2-linux-x64.tar.gz
53+
sudo tar zxvf xpack-riscv-none-elf-gcc-12.3.0-2-linux-x64.tar.gz -C /opt
54+
/opt/xpack-riscv-none-elf-gcc-12.3.0-2/bin/riscv-none-elf-gcc --version
55+
echo "RTT_EXEC_PATH=/opt/xpack-riscv-none-elf-gcc-12.3.0-2/bin" >> $GITHUB_ENV
5656
5757
- name: Install RISC-V Musl ToolChains
5858
if: ${{ matrix.legs.QEMU_ARCH == 'riscv64' && matrix.legs.UTEST == 'rtsmart/riscv64' && success() }}
5959
shell: bash
6060
run: |
61-
wget -q https://github.com/RT-Thread/toolchains-ci/releases/download/v1.7/riscv64-linux-musleabi_for_x86_64-pc-linux-gnu_latest.tar.bz2
61+
wget -q https://download.rt-thread.org/download/rt-smart/toolchains/riscv64-linux-musleabi_for_x86_64-pc-linux-gnu_latest.tar.bz2
6262
sudo tar xjf riscv64-linux-musleabi_for_x86_64-pc-linux-gnu_latest.tar.bz2 -C /opt
63-
/opt/riscv64-linux-musleabi_for_x86_64-pc-linux-gnu/bin/riscv64-unknown-linux-musl-gcc --version
63+
/opt/riscv64-linux-musleabi_for_x86_64-pc-linux-gnu/bin/riscv64-linux-musleabi-gcc --version
6464
echo "RTT_EXEC_PATH=/opt/riscv64-linux-musleabi_for_x86_64-pc-linux-gnu/bin" >> $GITHUB_ENV
65-
echo "RTT_CC_PREFIX=riscv64-unknown-linux-musl-" >> $GITHUB_ENV
65+
echo "RTT_CC_PREFIX=riscv64-linux-musleabi-" >> $GITHUB_ENV
6666
```
6767
68-
其中 `riscv64-unknown-elf-gcc` 用于构建 RT-Thread 标准版,`riscv64-unknown-linux-musl-gcc` 用于构建 RT-Thread Smart 版。根据上面所示链接分别下载到本地后解压缩。
68+
其中 `riscv-none-elf-gcc` 用于构建 RT-Thread 标准版,`riscv64-linux-musleabi-用于构建 RT-Thread Smart 版。根据上面所示链接分别下载到本地后解压缩。
6969

7070
## 2.2. 设置 RT-Thread 工具链环境变量
7171

7272
和 RT-Thread 工具链相关的环境变量有三个
7373

7474
- `RTT_CC` 为工具链名称, 这里统一为 `"gcc"`
75-
- `RTT_CC_PREFIX`: 为工具链前缀, 这里对于标准版是 `"riscv64-unknown-elf-"`,对于 Smart 版是 `"riscv64-unknown-linux-musl-"`。
76-
- `RTT_EXEC_PATH`: 工具链的 bin 文件夹所在路径, 如 `"$HOME/tools/riscv64-unknown-elf-toolchain-10.2.0-2020.12.8-x86_64-linux-ubuntu14/bin"`, 这个根据个人下载解压后的实际路径进行设置,注意 RT-Thread 标准版和 Smart 版本的工具链是两套不同的版本,而且设置 `RTT_EXEC_PATH` 的路径名时要一直到 `bin`。
75+
- `RTT_CC_PREFIX`: 为工具链前缀, 这里对于标准版是 `"riscv-none-elf-"`,对于 Smart 版是 `"riscv64-linux-musleabi-
76+
- `RTT_EXEC_PATH`: 工具链的 bin 文件夹所在路径, 如 `"$HOME/tools/xpack-riscv-none-elf-gcc-12.3.0-2/bin"`, 这个根据个人下载解压后的实际路径进行设置,注意 RT-Thread 标准版和 Smart 版本的工具链是两套不同的版本,而且设置 `RTT_EXEC_PATH` 的路径名时要一直到 `bin`。
7777

7878
如果一直使用的话,建议将这三个环境变量在 `.bashrc` 文件中 export。
7979

@@ -382,8 +382,8 @@ etc mnt run tc var
382382
```bash
383383
Memory region Used Size Region Size %age Used
384384
SRAM: 225856 B 16 MB 1.35%
385-
riscv64-unknown-elf-objcopy -O binary rtthread.elf rtthread.bin
386-
riscv64-unknown-elf-size rtthread.elf
385+
riscv-none-elf-objcopy -O binary rtthread.elf rtthread.bin
386+
riscv-none-elf-size rtthread.elf
387387
text data bss dec hex filename
388388
150907 3664 71268 225839 3722f rtthread.elf
389389
```
@@ -393,8 +393,8 @@ etc mnt run tc var
393393
```bash
394394
Memory region Used Size Region Size %age Used
395395
SRAM: 209376 B 16 MB 1.25%
396-
riscv64-unknown-elf-objcopy -O binary rtthread.elf rtthread.bin
397-
riscv64-unknown-elf-size rtthread.elf
396+
riscv-none-elf-objcopy -O binary rtthread.elf rtthread.bin
397+
riscv-none-elf-size rtthread.elf
398398
text data bss dec hex filename
399399
138739 1356 69276 209371 331db rtthread.elf
400400
```

bsp/qemu-virt64-riscv/SConstruct

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,22 @@ objs = PrepareBuilding(env, RTT_ROOT, has_libcpu = False)
2929

3030
stack_size = 4096
3131

32+
EXTRA_LINKFLAGS = ''
33+
EXTRA_CFLAGS = ''
3234
if GetDepend('RT_USING_SMART'):
33-
# use smart link.lds
34-
env['LINKFLAGS'] = env['LINKFLAGS'].replace('link.lds', 'link_smart.lds')
35+
# smart link options
36+
EXTRA_DEVICE= ' -march=rv64imafdc -mabi=lp64 '
37+
EXTRA_CFLAGS = EXTRA_DEVICE
38+
EXTRA_LINKFLAGS = EXTRA_DEVICE + ' -T link_smart.lds -lsupc++ -lgcc -static '
39+
else:
40+
# normal link options
41+
EXTRA_DEVICE= ' -march=rv64imafdc_zicsr -mabi=lp64d '
42+
EXTRA_CFLAGS = EXTRA_DEVICE
43+
EXTRA_LINKFLAGS = EXTRA_DEVICE + ' -T link.lds --specs=nosys.specs -static '
44+
env['CCFLAGS'] = EXTRA_CFLAGS + env['CCFLAGS']
45+
env['CXXFLAGS'] = EXTRA_CFLAGS + env['CXXFLAGS'] + EXTRA_CFLAGS
46+
env['ASFLAGS'] = EXTRA_CFLAGS + env['ASFLAGS']
47+
env['LINKFLAGS'] = env['LINKFLAGS'] + EXTRA_LINKFLAGS
3548

3649
stack_lds = open('link_stacksize.lds', 'w')
3750
if GetDepend('__STACKSIZE__'): stack_size = GetDepend('__STACKSIZE__')
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
2+
@set def_arch=riscv64
3+
4+
pushd %RTT_ENV_URL%\..\..
5+
set RTT_ENV_ROOT=%cd%
6+
popd
7+
8+
:: Download from:
9+
:: https://github.com/xpack-dev-tools/riscv-none-elf-gcc-xpack/releases/download/v12.3.0-2/xpack-riscv-none-elf-gcc-12.3.0-2-win32-x64.zip
10+
:: Extract as:
11+
:: C:\env-windows\tools\gnu_gcc\xpack-riscv-none-elf-gcc-12.3.0-2
12+
13+
@set RTT_CC=gcc
14+
@set RTT_EXEC_PATH=%RTT_ENV_ROOT%\tools\gnu_gcc\xpack-riscv-none-elf-gcc-12.3.0-2\bin
15+
@set RTT_CC_PREFIX=riscv-none-elf-
16+
17+
@set PATH=%RTT_EXEC_PATH%;%RTT_ENV_ROOT%\.venv\Scripts;%_OLD_VIRTUAL_PATH%
18+
19+
@echo "Arch => %def_arch%"
20+
@echo "CC => %RTT_CC%"
21+
@echo "PREFIX => %RTT_CC_PREFIX%"
22+
@echo "EXEC_PATH => %RTT_EXEC_PATH%"
23+
24+
:EXIT

bsp/qemu-virt64-riscv/rtconfig.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121

2222
if PLATFORM == 'gcc':
2323
# toolchains
24-
PREFIX = os.getenv('RTT_CC_PREFIX') or 'riscv64-unknown-elf-'
24+
PREFIX = os.getenv('RTT_CC_PREFIX') or 'riscv-none-elf-'
2525
CC = PREFIX + 'gcc'
2626
CXX = PREFIX + 'g++'
2727
AS = PREFIX + 'gcc'
@@ -32,10 +32,10 @@
3232
OBJDUMP = PREFIX + 'objdump'
3333
OBJCPY = PREFIX + 'objcopy'
3434

35-
DEVICE = ' -mcmodel=medany -march=rv64imafdc -mabi=lp64 '
35+
DEVICE = ' -mcmodel=medany '
3636
CFLAGS = DEVICE + '-ffreestanding -flax-vector-conversions -Wno-cpp -fno-common -ffunction-sections -fdata-sections -fstrict-volatile-bitfields -fdiagnostics-color=always'
3737
AFLAGS = ' -c' + DEVICE + ' -x assembler-with-cpp -D__ASSEMBLY__ '
38-
LFLAGS = DEVICE + ' -nostartfiles -Wl,--gc-sections,-Map=rtthread.map,-cref,-u,_start -T link.lds' + ' -lsupc++ -lgcc -static'
38+
LFLAGS = DEVICE + ' -nostartfiles -Wl,--no-warn-rwx-segments -Wl,--gc-sections,-Map=rtthread.map,-cref,-u,_start '
3939
CPATH = ''
4040
LPATH = ''
4141

bsp/qemu-virt64-riscv/smart-env.bat

Lines changed: 13 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,20 @@
11

2-
@set def_arch=arm
2+
@set def_arch=riscv64
33

4-
@if not "%1"=="" (
5-
@set def_arch=%1
6-
)
4+
pushd %RTT_ENV_URL%\..\..
5+
set RTT_ENV_ROOT=%cd%
6+
popd
77

8-
@if %def_arch%==arm (
9-
@set RTT_CC=gcc
10-
@set RTT_EXEC_PATH=%cd%\tools\gnu_gcc\arm-linux-musleabi_for_i686-w64-mingw32\bin
11-
@set RTT_CC_PREFIX=arm-linux-musleabi-
12-
@copy configs\def_config_arm .config
13-
) else if %def_arch%==riscv64 (
14-
@set RTT_CC=gcc
15-
@set RTT_EXEC_PATH=E:\workspace\rt-smart\userapps\tools\gnu_gcc\riscv64-linux-musleabi_for_i686-w64-mingw32\bin
16-
@set RTT_CC_PREFIX=riscv64-unknown-linux-musl-
17-
@copy configs\def_config_riscv64 .config
18-
) else (
19-
@echo "ERROR:supported_arch=arm riscv64!"
20-
@goto EXIT
21-
)
8+
:: Download from:
9+
:: https://download.rt-thread.org/download/rt-smart/toolchains/riscv64-linux-musleabi_for_i686-w64-mingw32_latest.zip
10+
:: Extract as:
11+
:: C:\env-windows\tools\gnu_gcc\riscv64-linux-musleabi_for_i686-w64-mingw32
2212

23-
@set PATH=%RTT_EXEC_PATH%;%PATH%
13+
@set RTT_CC=gcc
14+
@set RTT_EXEC_PATH=%RTT_ENV_ROOT%\tools\gnu_gcc\riscv64-linux-musleabi_for_i686-w64-mingw32\bin
15+
@set RTT_CC_PREFIX=riscv64-linux-musleabi-
16+
17+
@set PATH=%RTT_EXEC_PATH%;%RTT_ENV_ROOT%\.venv\Scripts;%_OLD_VIRTUAL_PATH%
2418

2519
@echo "Arch => %def_arch%"
2620
@echo "CC => %RTT_CC%"

0 commit comments

Comments
 (0)