К содержимому
learnspaceYOUR NEXT CHAPTER
ПРОСТРАНСТВО ОБУЧЕНИЯ
ГлавнаяКаталог курсовМоё обучениеCoursera

Знания без границ

Учитесь у лучших университетов и компаний мира.

Открыть Coursera
Интеграция
Пространство университета
Моё пространствоСтраница курса
↵
ЯЛичный кабинетСтудент
© 2026 LearnSpaceКаждый день — возможность узнать больше.Помощь
C Programming for Hardware · LearnSpace
Назад в каталог
courseraПрограммирование

C Programming for Hardware

Курс от Dartmouth College
Средний≈ 24.2 чАнглийский
О курсеНавыкиПрограммаПреподаватели

О курсе

This course gives you the opportunity to extend your C programming experience into firmware development, writing code that talks straight to a processor. Building, running, and debugging real code, you'll discover how a variable and an address in the memory map are the same idea seen from two directions. Along the way, you'll explore processor, bus, and memory architecture; learn how C data types map to physical memory; and safely interface with memory-mapped registers. You'll manipulate individual bits to drive real peripherals, write interrupt-safe code, and master pointers, type casting, and function-pointer callbacks. Whether you're reinforcing skills or meeting these ideas for the first time, the course's hands-on, self-assessed structure turns understanding into lasting ability. Each lab runs on the same emulated silicon you'd use in practice, so the behavior you observe is the behavior the chip produces. By the end, you'll be ready to pick up an unfamiliar microcontroller, open its reference manual, and start writing real, well-organized code against its hardware.

Навыки, которые вы освоите

C (Programming Language)Memory ManagementEmbedded SystemsDebuggingEmbedded SoftwareCode ReusabilityEvent-Driven ProgrammingSystem ProgrammingPeripheral DevicesMicroarchitectureComputer ArchitectureSoftware DesignData StructuresC and C++Secure CodingMaintainabilityProgramming PrinciplesData StorageComputer HardwareHardware Architecture

Программа курса

6 модулей · 94 учебных материалов

01Course Welcome7 материалов

Course Overview

Welcome VideoВидеоCourse Welcome ЧтениеNote on Course OrderЧтениеAssessment and Certificate CompletionЧтение

Учитесь у экспертов

Jason Dahlstrom

Преподаватель курса

C Programming for Hardware
В каталоге вашей программы

Инвестируйте в себя

Новые знания — в удобное для вас время.

Начать на Coursera

Обучение откроется на Coursera
в новой вкладке

Обучение на Coursera

≈ 24.2 ч

6 модулей

Язык: Английский

Часть программы вашего университета
Navigating Coursera & Finding HelpЧтение

Getting Started

Strategies for Success: Your Independent LearningЧтениеIndependent Learning Pre-AssessmentЗадание
02Technical Overview, Processor Architecture and ISA19 материалов

Module Overview

Module OverviewЧтениеCourse Tools and HardwareВидеоLab 01 - Hello World!Лабораторная

Hardware Architecture

Fundamental Components of Microcontroller ArchitectureВидеоARM Cortex M3 ArchitectureЧтениеLesson AssessmentЗадание

Instruction Set Architecture

ISA OverviewВидеоARM Cortex M3 ISA - load/store, arithmetic, flow control: Part 1ВидеоConcept Check: ARM Cortex M3 ISA - load/store, arithmetic, flow control: Part 1ЗаданиеARM Cortex M3 ISA - load/store, arithmetic, flow control: Part 2ВидеоDebugging AssemblyЛабораторнаяLesson AssessmentЗадание

C Compilers, Mapping C to the ISA

Compilers: Transforming C to Machine Instructions - Part 1ВидеоConcept Check: C CompilersЗаданиеCompilers: Transforming C to Machine Instructions - Part 2ВидеоLab 3 - Debugging CodeЛабораторнаяLesson AssessmentЗадание

Module Wrap-up

Module ReviewВидеоModule AssessmentЗадание
03Memory Architecture & Data Representation27 материалов

Module Overview

Module OverviewЧтение

Memory Management

Data storage: static and dynamic memory allocation - Part 1ВидеоConcept Check: Static and dynamic memory allocation - Part 1ЗаданиеData storage: static and dynamic memory allocation - Part 2ВидеоConcept Check: Static and dynamic memory allocation - Part 2ЗаданиеData storage: static and dynamic memory allocation - Part 3ВидеоLab 4 - Static and Dynamic Memory ЛабораторнаяLesson AssessmentЗадание

C Data Types and Memory

Video: Mapping C Data Types (int, float, char, bool) to the hardware architecture - Part 1ВидеоConcept Check: Video: Mapping C Data Types (int, float, char, bool) to the hardware architecture - Part 1ЗаданиеVideo: Mapping C Data Types (int, float, char, bool) to the hardware architecture - Part 2ВидеоLab 5 - Mapping C Data TypesЛабораторнаяLesson AssessmentЗадание

Typedefs, Structured Memory Maps, and Pointer Dereferencing

Typedefs, Structured Memory Maps, and Pointer Dereferencing: Part 1ВидеоConcept Check: Typedefs, Structured Memory Maps, and Pointer Dereferencing: Part 1ЗаданиеTypedefs, Structured Memory Maps, and Pointer Dereferencing: Part 2ВидеоConcept Check: Typedefs, Structured Memory Maps, and Pointer Dereferencing: Part 2ЗаданиеTypedefs, Structured Memory Maps, and Pointer Dereferencing: Part 3ВидеоLab 6 - Structured Register MapsЛабораторная

C Data Concurrency

Data Concurrency and Atomic Access: Part 1ВидеоConcept Check: Data Concurrency and Atomic Access: Part 1ЗаданиеData Concurrency and Atomic Access: Part 2ВидеоLab 7 - SysTick ЛабораторнаяLesson AssessmentЗадание

Module Wrap-up

Module ReviewВидеоModule AssessmentЗадание
04Advanced Data Pointers and Memory Manipulation26 материалов

Module Overview

Module OverviewЧтение

C Bit Manipulation

C Bit Manipulation: Part 1ВидеоConcept Check: C Bit Manipulation: Part 1ЗаданиеC Bit Manipulation: Part 2ВидеоMasking, Setting, Clearing, and Toggling Register Bits - Part 1ВидеоConcept Check: Masking, Setting, Clearing, and Toggling Register Bits - Part 1ЗаданиеMasking, Setting, Clearing, and Toggling Register Bits - Part 2ВидеоLab 8 - USARTЛабораторнаяLesson AssessmentЗадание

Typecasting and Memory Access Implications

Explicit and Implicit Type Casting: Part 1ВидеоConcept Check: Explicit and Implicit Type Casting: Part 1ЗаданиеExplicit and Implicit Type Casting: Part 2ВидеоType-based Memory Access: Part 1ВидеоConcept Check: Type-based Memory Access: Part 1ЗаданиеType-based Memory Access: Part 2Видео

Pointer Arguments and Pointer Arithmetic

Pointers in Practice: Part 1ВидеоConcept Check: Pointers in Practice: Part 1ЗаданиеPointers in Practice: Part 2ВидеоConcept Check: Pointers in Practice: Part 2ЗаданиеPointers in Practice: Part 3ВидеоLab 10 - Pointers in PracticeЛабораторная

Module Wrap-up

Module ReviewВидеоModule AssessmentЗадание
05Modular Code Design and Event Driven Programming12 материалов

Module Overview

Module OverviewЧтение

Modular Code Design

Modular C CodingВидеоLab 11 - Modular Code DesignЛабораторнаяLesson AssessmentЗадание

C Function Pointers

C Function PointersВидеоLab 12 - Function PointersЛабораторнаяLesson AssessmentЗадание

Callback Architectures and Event Driven Programming

Event Driven Programming with Callback FunctionsВидеоLab 13 - Event Driven Programming with CallbacksЛабораторнаяLesson AssessmentЗадание

Module Wrap-up

Module Wrap-UpЧтениеModule AssessmentЗадание
06Course Completion and Next Steps3 материалов
Course ReviewЧтениеCourse ReflectionЗаданиеNext StepsЧтение
Lesson AssessmentЗадание
Lab 9 - Type Aware Memory AccessЛабораторная
Lesson AssessmentЗадание
Lesson AssessmentЗадание