Quick_Start_Bash

? Quickstart Bash Script: scripts/quickstart.sh

#!/usr/bin/env bash
# =========================================================
# RISC-V Workshop Quickstart Script
# =========================================================
# Purpose: Automatically setup RISC-V tools, examples, and build environment
# Usage: bash scripts/quickstart.sh
# =========================================================

set -euo pipefail

echo "=== STEP 1: Update system and install basic packages ==="
sudo apt update
sudo apt install -y build-essential git make cmake wget curl \
python3 python3-pip unzip bison flex \
autoconf automake libtool gawk pkg-config \
gdb-multiarch spike

echo "=== STEP 2: Install RISC-V GNU Toolchain (if not installed) ==="
if ! command -v riscv64-unknown-elf-gcc &>/dev/null; then
echo "Toolchain not found. Installing to /opt/riscv..."
TMPDIR=$(mktemp -d)
git clone --depth 1 https://github.com/riscv-collab/riscv-gnu-toolchain.git "$TMPDIR/riscv-gnu-toolchain"
cd "$TMPDIR/riscv-gnu-toolchain"
./configure --prefix=/opt/riscv --with-arch=rv64gc --with-abi=lp64d
make -j"$(nproc)"
sudo chown -R $USER:$USER /opt/riscv
echo 'export PATH=$PATH:/opt/riscv/bin' >> ~/.bashrc
source ~/.bashrc
cd -
rm -rf "$TMPDIR"
else
echo "RISC-V toolchain already installed."
fi

echo "=== STEP 3: Setup workshop directories ==="
WORK_DIR="$HOME/riscv-workshop"
mkdir -p "$WORK_DIR/examples"
mkdir -p "$WORK_DIR/exercises/day01-environment"
mkdir -p "$WORK_DIR/exercises/day02-sim-and-toolchain"
echo "Created directories under $WORK_DIR"

echo "=== STEP 4: Copy starter examples ==="
cat > "$WORK_DIR/examples/hello.c" <<'EOF'
#include <stdio.h>
int main() {
printf("Hello, RISC-V Workshop!\n");
return 0;
}
EOF
echo "Created hello.c in examples/"

echo "=== STEP 5: Build and run example ==="
mkdir -p "$WORK_DIR/build"
riscv64-unknown-elf-gcc -O2 -march=rv64gc -mabi=lp64d -o "$WORK_DIR/build/hello.elf" "$WORK_DIR/examples/hello.c"
echo "Running on Spike simulator:"
spike "$WORK_DIR/build/hello.elf"

echo "=== Quickstart Completed! ==="
echo "All setup is ready in $WORK_DIR"
echo "Next step: explore exercises in $WORK_DIR/exercises/"


✅ How It Works

  1. Update system & install dependencies

    • Ensures git, gcc, make, spike, Python, and other utilities are installed.

  2. Install RISC-V Toolchain if missing

    • Clones and builds the toolchain automatically.

    • Adds /opt/riscv/bin to PATH.

  3. Create workshop directories

    • examples/ for demo code

    • exercises/day01-environment/ and day02-sim-and-toolchain/ for exercises

  4. Add starter example (hello.c)

    • Simple “Hello, RISC-V Workshop!” program.

  5. Build & run example

    • Compiles with riscv64-unknown-elf-gcc

    • Runs on spike simulator


? Usage

chmod +x scripts/quickstart.sh
bash scripts/quickstart.sh

After running:

  • Environment is ready under ~/riscv-workshop

  • Participants can start exercises immediately

  • Only one command sets up everything

(26) 会員情報
1診療回
  会員 所属 ステージ 相談 再診 担当 支払 相談日 時間帯 カルテ ビデオ
26 6 1 1 0
26 1 1 1 0
26 6 1 1 0
26 6 1 1 0
26 6 1 1 1 0

< tr>

会員 所属 金額 セット 単独 db1 db2 db3 db4 日付
9 6 149999 4 4005 35 0 0 0 0000-00-00
1 0 0 0 2 1008 2003 3002 4007 2017-11-15
2 0 11111 1 0 1 2 25 26 2020-02-21
3 0 12000 1 0 45 46 43 44 2020-02-25
12 0 12000 1 0 22 23 28 29 2020-03-09
14 6 12000 1 0 30 32 36 37 2020-03-10
7 6 11000 1 0 27 34 61 31 2020-04-02
9 6 12000 1 0 18 19 20 21 2020-04-25
2 0 4000 0 1 35 0 0 0 2020-05-01
12 0 11999 1 0 24 38 39 40 2020-05-31

テストID ユーザーID レコード数 実施月日
1001 5 1 2009:08:02,18:00:00,#
1002 7 1 2009
1003 5 1 69,##
1004 11 3 0000-00-00/ /00:00:00
1005 11 10 0
1007 2 9 0
1008 3 2 0
1111 3 6 0
2001 7 1 2009
2003 7 6 0
2004 7 10 0
2230 7 2 0
3001 2 2
3002 12 17 0000-00-00/ /00:00:00
3004 12 14 0000-00-00/ /00:00:00
4001 12 2 0000-00-00/ /00:00:00
4002 12 1 0000-00-00/ /00:00:00
4003 12 1 0000-00-00/ /00:00:00
4004 12 1 0000-00-00/ /00:00:00
4005 9 14 #
4006 10 3 2020-08-17,14:00:30#
4007 11 58 #https://web.microsoftstream.com/video/46714aa8-b024-4752-a6b1-58b03cb025c1#

所属ID(Class 1) ユーザー数 class1番地
6 8 2
6 8 3
6 8 4
6 8 5
6 6 6
22 1 7
0 7 8
ユーザーID(Class 2) id番地 レコード数
2 9 1
3 10 1
7 12 1
7 11 1
9 13 1
9 14 1
10 15 1
10 16 1
11 17 1
12 18 1
12 19 1
14 20 1
14 21 1
15 22 1
16 23 1
17 24 1
18 25 1
19 26 1
20 27 1
21 28 1
24 29 1
25 30 1
26 31 1
27 32 1
28 33 1
29 34 1
30 35 1
31 36 1
32 37 1
33 38 1
34 39 1
35 40 1
36 41 1
36 42 1
36 43 1
37 44 1
38 45 1
39 46 1
40 47 1
41 48 1
42 49 1
43 50 1
44 51 1
45 52 1
46 53 1
47 54 1
48 55 1
49 56 1
50 57 1
51 58 1
52 59 1
53 60 1
54 61
ユーザーID(Class 3) id番地 レコード数
0 71 1
1 64 1
2 63 1
3 62 1
4 66 1
5 65 1
6 145 1
55 67 1
59 68 1
60 69 1
61 70 1

Cardデータ