Welcome to Week-01 Labs
This repository is for submitting your deliverables for Week-01 of the Digital Design Training Program.
During this week, you explored C programming, Linux productivity tools, Git workflows, and RISC-V basics.
This repo will collect your lab assignments, scripts, and code implementations.
- Theory:
- Orientation & expectations
- C syntax, data types, operators, control structures
- Functions, recursion
- Arrays & strings
- Lab Tasks:
- Basic Syntax & Data Types
- Operators & Expressions
- Control Structures
- Functions
- Arrays & Strings
- File I/O Basics
- Logical Operations
- Enumerations
- Structures (Intro)
- Command Line Arguments
- Theory:
- Pointers, memory management, structures, File I/O
- Compilation process
- Lab Tasks:
- Pointer Basics & Arithmetic
- Pointers with Arrays/Strings
- Preprocessor & File I/O
- Dynamic Memory Allocation
- Linked Lists
- Advanced Challenge Task
- Theory:
- Shell scripting (structure, variables, control structures, I/O)
- Makefile basics & advanced usage
- Git (basics, branching, merging, stash, tags, ignoring files)
- Lab Tasks:
- Shell Scripting: basics, control structures, functions, arrays, file ops
- Makefile: simple & advanced, project automation
- VS Code setup & extensions
- Git exercises: branching, merging, stash, tags
- Theory:
- RISC-V ISA basics
- RISC-V assembly programming: syntax, registers, memory addressing, arithmetic & control flow instructions
- Toolchain overview (
riscv64-unknown-elf-gcc) - Spike simulator introduction
- Lab Tasks:
- Installing Spike and RISC-V toolchain
- Running a basic example on Spike
- Assembly programming exercises
├── Day01\_C\_Basics/
│ └── <your C programs here>
├── Day02\_AdvancedC/
│ └── \<pointer/memory/linked list tasks>
├── Day03\_Shell\_Make\_Git/
│ └── \<shell scripts, makefiles, git exercises>
├── Day05\_RISCV\_Spike/
│ └── <RISC-V assembly and spike tasks>
└── README.md
- Fork this repository into your own GitHub account.
- Clone your fork to your local machine.
- Add your solutions inside the relevant Name_Folder/DayXX_.../ folders.
- Commit with clear commit messages.
- Push your work to your fork.
- Submit your work by creating a Pull Request (PR) back to this repo.
- All C programs (Day-01, Day-02)
- Bash scripts & Makefile tasks (Day-03)
- RISC-V assembly programs running on Spike (Day-04)