GPT的回答:
思考:
确认清单后,再运行实际下载。
版权与权限
-
不自动下载或再分发纸质教材/付费教材的非授权副本。
-
公开电子书页面只保存网页索引;你可以在浏览器中阅读。
-
Google Docs 只有在公开且允许导出时才能自动下载;否则需要你手动导出后放入指定目录。
-
UT Canvas、课程内部公告、评分与作业提交内容需要 UT 登录,本项目无法绕过权限。
本项目的工作原则
-
先理解,再复制;先复现,再修改;最后脱离范例重做。
-
不让 Codex替你直接完成整份实验。它应当解释、诊断、提出最小修改、帮助验证。
-
所有外部代码必须记录出处,并确保你能解释关键逻辑。
-
任何安装、删除、覆盖或大规模重构都先留下日志。
''')
write(‘00_guide/COURSE_MAP.md’, r'''
课程地图:这些网页到底各自负责什么
一、课程的核心闭环
ECE319K 不是“先把书读完,再做题”。它的真实节奏是:
教材章节 → 课堂讲义/示例 → Lab 文档 → Starter Project → 实物接线与调试 → Worksheet/Quiz → 旧考试检验
对自学者,建议把每个单元固定成以下七步:
-
先看本周
UNIT_GUIDE.md,只了解目标与产物。 -
阅读对应电子书章节,不追求一次吃透。
-
看当周 lecture slides 与 example code。
-
阅读 Lab 文档,画出软硬件因果链和接线图。
-
复制一个课程提供的已知可运行工程,再修改;不要从空白工程开始。
-
在真板上编译、烧录、测量、记录错误和证据。
-
做 worksheet/旧考题,自证不是“只会照着做”。
二、资源分层
A. 每周必须使用
-
Spring 2026 Syllabus:课程目标、先修、设备、教学规则。
-
E-book:九章主教材与电子学/数字逻辑/汇编附录。
-
Lectures:每周覆盖范围、PPT、课堂示例代码和 worksheet。
-
Labs:Lab 0/Setup 到 Lab 9 的实验说明。
-
Spring 2026 Starter Files:已配置好的 CCS 项目和示例。
-
数据手册中与当前实验有关的部分。
B. 用来判断“真的会了没有”
-
Weekly worksheets:Canvas quiz 不公开时,worksheet 是最接近的替代。
-
Exam 1 旧题:内存、寄存器、栈、运算、控制结构、函数、数组,C 与汇编并行。
-
Exam 2 practice systems:在 CCS 与真实板上反复编辑、编译、调试。
-
Finals:全课程综合;必须先做题,再看答案。
C. 遇到卡点再查
-
Podcast:针对指针、内存映射、I/O 寄存器、模块化、硬故障等概念补洞。
-
Cortex-M0+ / MSPM0G3507 技术参考手册。
-
C reference card、Arm clang guide。
-
Factory Reset、BSL unbrick、LaunchPad pin card。
D. 暂时不要混入主线
-
PCB Camp / KiCad:先保存,等 Lab 5–9 或第一次独立硬件项目再进入。
-
RSLK / ECE445L:Volume 2 路线,完成 ECE319K 后再启动。
-
ECE445M / RTOS:Volume 3 路线。
-
Honors wireless Lab 8H:普通路线不必购买红外件。
-
旧 TM4C123/Keil 课程:仅作比较资料,不另建主线。
三、九章与九个实验的对应
| 学习单元 | 核心内容 | 主要 Lab | 最终可见成果 |
|---|---|---|---|
| Chapter 1 | MCU、内存、寄存器、ARM 汇编、AAPCS | Lab 1 | 在真板上执行和调试汇编程序 |
| Chapter 2 | GPIO、按键、LED、基本电路、PWM | Lab 2 | 外部按键控制外部 LED |
| Chapter 3 | C、函数、数组、指针、调试 | Lab 3 | C 程序与调试数据采集 |
| Chapter 4 | struct、有限状态机、SysTick | Lab 4 | 交通灯状态机 |
| Chapter 5 | 中断、DAC、声音、模块化 | Lab 5 | 5-bit DAC 数字钢琴 |
| Chapter 6 | 栈、局部变量、SPI、LCD、定点数 | Lab 6 | ST7735R 显示驱动与数值显示 |
| Chapter 7 | ADC、采样、校准、实时中断 | Lab 7 | 实时位置/距离监测系统 |
| Chapter 8 | UART、FIFO、并发 I/O | Lab 8 | 分布式数据采集/串行通信 |
| Chapter 9 | 系统设计、图形、声音、周期任务 | Lab 9 | 完整掌上游戏系统 |
四、UT 课堂与自学版本的差异
UT 学生拥有教授、TA、Canvas、现场 checkout、同伴和固定考试。自学版本用以下机制替代:
-
STATUS.md:当前单元、阻塞和下一步。 -
每个 Lab 的
evidence/:照片、串口日志、波形/电压记录、演示视频。 -
每个 Lab 的
POSTMORTEM.md:错误、原因、修复和可迁移结论。 -
Codex:作为工程助理和诊断员,不作为代写者。
-
ChatGPT:作为课程指导员,负责节奏、概念解释、复盘和路线调整。
-
旧考试:作为外部标准,而不是“感觉自己会了”。
五、课程之后
完成 Lab 9 以后,再进行:
-
一个不照书复制的 MSPM0 独立项目。
-
用 Mazidi + NUCLEO-F446RE 把若干核心项目迁移到 STM32F4。
-
Volume 2 / ECE445L:更复杂接口、PCB、数据采集、控制、通信、机器人。
-
Volume 3 / ECE445M:实时操作系统、信号处理、网络。
''')
write(‘00_guide/PURCHASE_GUIDE_CN.md’, r'''
中国购买指南(按阶段买,不一次性堆满桌子)
第一批:开始前必须有
1. 开发板
准确型号:TI LP-MSPM0G3507 LaunchPad
不要买成:
-
裸芯片 MSPM0G3507
-
LP-MSPM0L1306
-
TM4C123 LaunchPad
-
第三方所谓“MSPM0 最小系统板”
优先渠道:TI 官方、中国区授权分销商 DigiKey/Mouser。淘宝/闲鱼只有在能确认封装、板号、全新状态和板载 XDS110 正常时才考虑。
官方用户指南写明套件通常包括开发板、Micro-USB 数据线和快速入门指南;实际下单仍应查看商家包装清单。
2. 面包板与线
-
一块质量较好的无焊面包板(推荐完整尺寸,至少 830 孔)。
-
若干公对公跳线。
-
备一些 22 AWG 左右单芯面包板线,接线会比廉价软跳线更整齐可靠。
3. 数字万用表
必须能可靠测量:
-
直流电压
-
电阻
-
通断
不必第一天购买昂贵台式表。课程明确把万用表当作硬件调试的基本工具。
4. 电脑接口
-
课程使用 CCS,需要电脑有可用 USB 数据连接。
-
如果电脑只有 USB-C,准备一个可靠转接器或 USB-C 数据线方案。
-
线必须传数据,不是仅充电线。
第二批:Lab 2–5 前购买
课程 Spring 2026 kit 的最低原件如下。国内购买时,电阻与普通 LED 可以使用可靠的同规格等效件;特殊器件尽量按型号。
| 数量 | 器件 | 课程型号/规格 |
|---|---|---|
| 2 | 绿色 5mm LED | LiteOn LTL-4234,约 1.9V/10mA |
| 2 | 红色 5mm LED | LiteOn LTL-4213,约 1.9V/10mA |
| 2 | 黄色 5mm LED | LiteOn LTL-4253,约 1.9V/10mA |
| 6 | 电阻 | 270Ω,1/4W,5% |
| 4 | 电阻 | 10kΩ,1/4W,5% |
| 3 | 电阻 | 12kΩ,1/4W,5% |
| 3 | 电阻 | 1.5kΩ,1/4W,5% |
| 4 | 轻触开关 | Omron B3F-1050 或面包板兼容等效件 |
| 1 | 32Ω、约 28mm 扬声器 | PUI AS02832MR-2-R 或接近规格 |
| 1 | 达林顿阵列 | ULN2003A |
实际购买建议把普通 LED、电阻和轻触开关各多买一些,损坏、极性接错和丢件都很常见。
扬声器需要两处焊点。作为自学者,你需要:小功率恒温电烙铁、烙铁架、焊锡、吸锡带/吸锡器、护目与通风条件。先阅读课程的焊接安全指南。
第三批:Lab 6–9 前购买
ST7735R 彩色 LCD
课程要求:
-
1.8 英寸左右
-
128 × 160
-
控制器为 ST7735R
课程 KiCad 文件明确包含 Adafruit ST7735R 与 HiLetgo ST7735R 两种符号/引脚方案。国内商品标题常把 ST7735R、ST7735S、不同排线与不同引脚板混写,购买前核对:
-
控制器型号
-
模块引脚名称与数量
-
是否为 3.3V 逻辑兼容
-
分辨率与屏幕方向
-
是否与课程驱动支持的 tab/初始化序列一致
不要因为“都是 1.8 寸彩屏”就默认兼容。
滑动电位器
课程型号:Bourns PTA2043-2015CPB103,10kΩ。它被用作位置传感器/换能器。为了让机械尺寸、行程和标定更接近实验,优先按型号购买;找不到时再选直线型 10kΩ 滑动电位器,并准备修改机械/标定参数。
可选音频插座
Lab 5 的 3.5mm audio jack 不在标准 kit 中。先用扬声器完成实验即可;需要耳机接口时再购买与课程原理图兼容的插座。
暂时不要买
-
Honors Lab 8H 的红外 LED 与 38kHz 接收器。
-
RSLK 机器人套件。
-
STM32 Nucleo 板。
-
示波器、逻辑分析仪等较贵仪器。
-
PCB 打样与整套焊接设备。
先把开发板、面包板、万用表和前几个 Lab 跑通。后续是否需要示波器/逻辑分析仪,要依据真实项目决定。
到货验收
-
拍下包装和板号。
-
检查 USB 口、排针、跳帽和板面是否有损伤。
-
接入数据 USB,确认电源灯亮。
-
运行官方 Out-of-Box demo。
-
记录序列号/购买渠道/到货日期到
hardware/INVENTORY.md。
''')
write(‘00_guide/SETUP_AND_WORKFLOW.md’, r'''
软件安装与工作流
现在先不要做的事
不要看到 TI 官网有“最新 CCS/SDK”就立刻随手安装。ECE319K Spring 2026 提供了自己的 CCS 安装说明和 starter installer;课程代码、编译器、SDK 与工程配置之间可能存在版本耦合。
正确顺序:
-
先把公开的 CCS 安装 Google Doc 导出到本地。
-
找出它指定的 CCS 版本、安装组件、目录和 Spring 2026 installer。
-
让 Codex把这些信息写入
software/ENVIRONMENT_LOCK.md。 -
再安装,并记录版本号与安装路径。
-
第一个已知工程成功编译、下载、单步调试以后,才开始 Lab 1。
课程特别强调的工程习惯
课程下载页明确建议:不要随意创建新 CCS project;复制一个现有的、已知可运行的工程文件夹,再修改。
这能避免初学者被 linker script、target config、SDK include path、编译器选项等与核心知识无关的问题拖住。
本项目因此采用:
labs/LabXX_*/
├── official/ # 官方文档/只读参考
├── starter/ # 官方 starter project 原样副本/尽量只读
├── work/ # 从 starter 复制后实际修改
├── evidence/ # 照片、输出、测量、截图、视频
└── notes/ # 思考、错误、复盘
Codex可以做什么
-
检查 CCS/SDK/Python/Git/KiCad/Octave 版本。
-
下载、校验和分类公开资源。
-
对比 starter 与 work 的差异。
-
解释编译错误、链接错误、HardFault、寄存器和内存状态。
-
运行静态检查、生成构建日志、维护 STATUS。
-
在你明确理解后实施小范围修改。
Codex不应做什么
-
一次性替你写完整 Lab。
-
未经说明更换库、重写架构或把寄存器代码全换成黑盒框架。
-
覆盖 starter 原文件。
-
隐藏来源、删除错误证据、伪造实验结果。
-
未经确认安装系统软件或执行破坏性命令。
板子“变砖”时
课程下载页给出的 BSL 恢复思路:按住靠近 LED 的 BSL_Invoke 按钮 S1,同时按下并释放 Reset;设备约在 BSL active 状态停留 10 秒,应立即尝试重新编程。课程还链接了 TI Factory Reset Tool。
恢复操作前先保存:错误日志、最后一次修改、板上跳帽位置和供电情况。
''')
write(‘00_guide/SELF_STUDY_PLAN.md’, r'''
建议自学节奏:18 个单元,不照搬 UT 的压缩学期
这不是死日历。每个单元以“完成可验证产物”为结束标准。
| 单元 | 内容 | 产物 |
|---|---|---|
| 0 | 网站地图、采购、先修诊断 | 确定设备订单与 prerequisite gap |
| 1 | CCS、驱动、官方 demo、调试界面 | 能连接、编译、下载、单步、看寄存器/内存 |
| 2 | Chapter 1 前半:数字、寄存器、内存 | 汇编小程序与调试记录 |
| 3 | Chapter 1 后半:函数、AAPCS、数组 | Lab 1 完成与 Exam1 基础题 |
| 4 | Chapter 2:GPIO 与基础电路 | Lab 2,按键/LED,万用表测量 |
| 5 | Chapter 3 前半:C 数据与控制 | 小型 C 练习 |
| 6 | Chapter 3 后半:函数、指针、数组、调试 | Lab 3 |
| 7 | Chapter 4:struct、FSM、SysTick | Lab 4 交通灯 |
| 8 | 第一阶段复盘 | Exam 1 旧题,补洞 |
| 9 | Chapter 5:中断、DAC、声音 | Lab 5 数字钢琴 |
| 10 | Chapter 6 前半:栈、局部变量、C/汇编接口 | 函数调用与栈证据 |
| 11 | Chapter 6 后半:SPI、LCD、定点数 | Lab 6 |
| 12 | 第二阶段复盘 | Exam 2 practice system |
| 13 | Chapter 7 前半:ADC、采样 | ADC 原始数据与标定实验 |
| 14 | Chapter 7 后半:实时采样、显示 | Lab 7 |
| 15 | Chapter 8:UART、FIFO、中断并发 | Lab 8 |
| 16 | Chapter 9:系统架构、sprites、声音 | 游戏设计文档与最小可玩版本 |
| 17 | Lab 9 完成 | 完整演示、测试、复盘 |
| 18 | 独立项目与全课程验收 | Final 旧题 + 独立系统 |
每个单元至少留下:
-
一份可运行代码;
-
一项真实硬件或调试证据;
-
一段“为什么会这样”的解释;
-
一条失败记录;
-
一道脱离示例完成的变式任务。
''')
write(‘STATUS.md’, r'''
当前状态
-
当前阶段:站点审计与本地工作区初始化
-
当前单元:Unit 0
-
已完成:课程公开网页第一轮映射;建立资源清单与下载脚本
-
阻塞:Google Docs 正文尚未在本工作区导出;Spring 2026 installer 的准确版本尚未锁定
-
下一步:在本机用 Codex运行 dry-run,下载公开 Google Docs 和直接文件,生成下载报告
-
硬件状态:待填写
-
CCS 状态:不要安装,待读取官方安装文档
本周完成定义
-
解压并用 Codex打开本目录
-
运行下载器 dry-run
-
导出/下载 CCS 安装文档、Introduction、Setup、LabDemo、Lab1
-
生成
software/ENVIRONMENT_LOCK.md -
确认 LP-MSPM0G3507 购买渠道
''')
write(‘DECISIONS.md’, r'''
关键决策记录
2026-07-29
-
第一主线确定为 Valvano/Yerraballi 的 MSPM0 版 ECE319K。
-
旧 TM4C123 Volume 1 不作为并行课程。
-
Dean 不作为第二套完整入门课;保留作并发/效率/DMA参考。
-
Mazidi 放到 ECE319K完成后的 STM32F4 迁移阶段。
-
本地目录不做全站镜像;只下载可复用静态资源,动态网页建立索引。
-
不自动下载或分发非授权教材副本。
-
CCS 安装版本要以 Spring 2026 课程文档为准,未锁定前不盲装。
''')