Skip to content
 
 

Latest commit

 

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Week-01 Labs: Productivity Tools & C Fundamentals

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.


Topics Covered in Week-01

Day 01: C Language Refresher

  • 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

Day 02: Advanced Topics in C

  • 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

Day 03: Linux Shell Scripting, Makefile, Git

  • 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

Day 04: Introduction to RISC-V ISA & Spike

  • 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

Repository Structure


├── 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


Submission Guidelines

  1. Fork this repository into your own GitHub account.
  2. Clone your fork to your local machine.
  3. Add your solutions inside the relevant Name_Folder/DayXX_.../ folders.
  4. Commit with clear commit messages.
  5. Push your work to your fork.
  6. Submit your work by creating a Pull Request (PR) back to this repo.

Deliverables Checklist

  • All C programs (Day-01, Day-02)
  • Bash scripts & Makefile tasks (Day-03)
  • RISC-V assembly programs running on Spike (Day-04)

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages