GPT的回答:

思考:

确认清单后,再运行实际下载。

版权与权限

  • 不自动下载或再分发纸质教材/付费教材的非授权副本。

  • 公开电子书页面只保存网页索引;你可以在浏览器中阅读。

  • Google Docs 只有在公开且允许导出时才能自动下载;否则需要你手动导出后放入指定目录。

  • UT Canvas、课程内部公告、评分与作业提交内容需要 UT 登录,本项目无法绕过权限。

本项目的工作原则

  • 先理解,再复制;先复现,再修改;最后脱离范例重做。

  • 不让 Codex替你直接完成整份实验。它应当解释、诊断、提出最小修改、帮助验证。

  • 所有外部代码必须记录出处,并确保你能解释关键逻辑。

  • 任何安装、删除、覆盖或大规模重构都先留下日志。
    ''')

write(‘00_guide/COURSE_MAP.md’, r'''

课程地图:这些网页到底各自负责什么

一、课程的核心闭环

ECE319K 不是“先把书读完,再做题”。它的真实节奏是:

教材章节 → 课堂讲义/示例 → Lab 文档 → Starter Project → 实物接线与调试 → Worksheet/Quiz → 旧考试检验

对自学者,建议把每个单元固定成以下七步:

  1. 先看本周 UNIT_GUIDE.md,只了解目标与产物。

  2. 阅读对应电子书章节,不追求一次吃透。

  3. 看当周 lecture slides 与 example code。

  4. 阅读 Lab 文档,画出软硬件因果链和接线图。

  5. 复制一个课程提供的已知可运行工程,再修改;不要从空白工程开始。

  6. 在真板上编译、烧录、测量、记录错误和证据。

  7. 做 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 1MCU、内存、寄存器、ARM 汇编、AAPCSLab 1在真板上执行和调试汇编程序
Chapter 2GPIO、按键、LED、基本电路、PWMLab 2外部按键控制外部 LED
Chapter 3C、函数、数组、指针、调试Lab 3C 程序与调试数据采集
Chapter 4struct、有限状态机、SysTickLab 4交通灯状态机
Chapter 5中断、DAC、声音、模块化Lab 55-bit DAC 数字钢琴
Chapter 6栈、局部变量、SPI、LCD、定点数Lab 6ST7735R 显示驱动与数值显示
Chapter 7ADC、采样、校准、实时中断Lab 7实时位置/距离监测系统
Chapter 8UART、FIFO、并发 I/OLab 8分布式数据采集/串行通信
Chapter 9系统设计、图形、声音、周期任务Lab 9完整掌上游戏系统

四、UT 课堂与自学版本的差异

UT 学生拥有教授、TA、Canvas、现场 checkout、同伴和固定考试。自学版本用以下机制替代:

  • STATUS.md:当前单元、阻塞和下一步。

  • 每个 Lab 的 evidence/:照片、串口日志、波形/电压记录、演示视频。

  • 每个 Lab 的 POSTMORTEM.md:错误、原因、修复和可迁移结论。

  • Codex:作为工程助理和诊断员,不作为代写者。

  • ChatGPT:作为课程指导员,负责节奏、概念解释、复盘和路线调整。

  • 旧考试:作为外部标准,而不是“感觉自己会了”。

五、课程之后

完成 Lab 9 以后,再进行:

  1. 一个不照书复制的 MSPM0 独立项目。

  2. 用 Mazidi + NUCLEO-F446RE 把若干核心项目迁移到 STM32F4。

  3. Volume 2 / ECE445L:更复杂接口、PCB、数据采集、控制、通信、机器人。

  4. 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 LEDLiteOn LTL-4234,约 1.9V/10mA
2红色 5mm LEDLiteOn LTL-4213,约 1.9V/10mA
2黄色 5mm LEDLiteOn 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 或面包板兼容等效件
132Ω、约 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 跑通。后续是否需要示波器/逻辑分析仪,要依据真实项目决定。

到货验收

  1. 拍下包装和板号。

  2. 检查 USB 口、排针、跳帽和板面是否有损伤。

  3. 接入数据 USB,确认电源灯亮。

  4. 运行官方 Out-of-Box demo。

  5. 记录序列号/购买渠道/到货日期到 hardware/INVENTORY.md
    ''')

write(‘00_guide/SETUP_AND_WORKFLOW.md’, r'''

软件安装与工作流

现在先不要做的事

不要看到 TI 官网有“最新 CCS/SDK”就立刻随手安装。ECE319K Spring 2026 提供了自己的 CCS 安装说明和 starter installer;课程代码、编译器、SDK 与工程配置之间可能存在版本耦合。

正确顺序:

  1. 先把公开的 CCS 安装 Google Doc 导出到本地。

  2. 找出它指定的 CCS 版本、安装组件、目录和 Spring 2026 installer。

  3. 让 Codex把这些信息写入 software/ENVIRONMENT_LOCK.md

  4. 再安装,并记录版本号与安装路径。

  5. 第一个已知工程成功编译、下载、单步调试以后,才开始 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
1CCS、驱动、官方 demo、调试界面能连接、编译、下载、单步、看寄存器/内存
2Chapter 1 前半:数字、寄存器、内存汇编小程序与调试记录
3Chapter 1 后半:函数、AAPCS、数组Lab 1 完成与 Exam1 基础题
4Chapter 2:GPIO 与基础电路Lab 2,按键/LED,万用表测量
5Chapter 3 前半:C 数据与控制小型 C 练习
6Chapter 3 后半:函数、指针、数组、调试Lab 3
7Chapter 4:struct、FSM、SysTickLab 4 交通灯
8第一阶段复盘Exam 1 旧题,补洞
9Chapter 5:中断、DAC、声音Lab 5 数字钢琴
10Chapter 6 前半:栈、局部变量、C/汇编接口函数调用与栈证据
11Chapter 6 后半:SPI、LCD、定点数Lab 6
12第二阶段复盘Exam 2 practice system
13Chapter 7 前半:ADC、采样ADC 原始数据与标定实验
14Chapter 7 后半:实时采样、显示Lab 7
15Chapter 8:UART、FIFO、中断并发Lab 8
16Chapter 9:系统架构、sprites、声音游戏设计文档与最小可玩版本
17Lab 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 课程文档为准,未锁定前不盲装。
    ''')

回答: