# Winter 2025 Course Journal: EECS 461 Course Title: Embedded Control Systems ## Motivation I enrolled in this course because of two reason: - I checked the list of upper-level courses I must pick one from and this is one of the only three options that don't mess up my schedule - Mark Brehob recommended it so it must be good The other two courses are EECS 491 (distributed systems) and 483 (compilers). I have 491 in my backpack right now, but am thinking of dropping it because workload. It really hurts me to drop a course offered by one of my favorite professors. But compared to 461, it's less relevant to my career, so I need to let go if I have to. 483 is another matter. I doubt I have the math background. The funny thing is, each of these courses teaches a different language: - 461: C - 491: Go - 483: Rust I'm stuck with the worst of the worst, aren't I. :floofmug: ## First lecture The professor is Jeffrey Cook. He carries a suitcase, which ranks him at 2nd place on my "coolest thing to carry to lecture" leaderboard (1st place is Robert Dick with his Panasonic Toughbook). The course involves a haptic wheel (motorized steel wheel, ~10 cm in diameter), some NXP ARM MCU, C, MATLAB, Simulink, and Stateflow. Cook said in lecture that you can't declare variables in the middle of a block, only in the beginning. I was like, no way that's true, that must be an outdated version of C. I tried a counterexample on my gcc, and it worked all the way back to C99. He said, "well, at least it's like that on the lab compiler." It turns out the rule dates back to C89. Which means? I'll be working with C89 for the rest of the semester. :mosfet_grub: ## First lab I hate that the first lab is about MMIO and GPIO, which means I have to relive 373. It's like having to beat a tedious game level that you already passed one year ago with 28 tries. I went from MMIO to `digitalWrite`, and now the rock is rolling down the hill. :floofmug: