[video member=miotatsu stream_platform=twitch project=riscy title="Understanding Center Aligned Waveforms & Searching For __atomic_fetch_xor" vod_platform=youtube id=aXPgZGqmYYE annotator=Miblo] [0:07][Recap and set the stage for the day] [1:00][Shifting << 1 in order to produce a centre-aligned waveform][:blackboard] [3:35][Try setting G to 0x8000, centre-aligned][:peripheral] [5:02][:Run the program and see a light, to determine that the value gets inverted at 0x8000] [5:37][Try setting G to 0x7FFF and :run to see it lit, but a little dimmer] [7:23][Determine that the code is shifting the wrong way, and change it to shift right] [8:53][:Run the program, and see that the brightness is uniform] [10:16][Determine that we fully understand PWM, and to review demo_gpio.c][:peripheral] [11:17][Review demo_gpio.c] [12:47][Note that we don't understand bit-banging, or know about atomic_fetch_xor_explicit()] [16:24][Consult the documentation for atomic_fetch_xor_explicit[ref site=cppreference.com page="atomic_fetch_xor, atomic_fetch_xor_explicit" url=http://en.cppreference.com/w/c/atomic/atomic_fetch_xor]][:memory :research] [19:02][Look into how we call atomic_fetch_xor_explicit() and read about memory_order[ref site=cppreference.com page=memory_order url=http://en.cppreference.com/w/c/atomic/memory_order]][:memory :research] [31:24][Hunt the Freedom E SDK for our atomic_fetch_xor_explicit()][:memory :research] [1:03:22][Hunt the GCC source for the __atomic_fetch_xor() built-in][:memory :research] [1:08:28][We are out of time for today, with the determination to continue investigating this] [/video]