Every other demo in this repo renders the same marketing page in a different voice. This one cannot: relief's subject is technical diagrams, so the honest demo is a real thing explained. Below, one finger press is followed from the glass to the application, and each hop is drawn with whichever diagram shape actually fits it.这个仓里别的 demo 都是同一份营销页换一种声音。这个不行:relief 的主题是技术框图,所以诚实的 demo 是真讲一件事。下面跟着一次按压从玻璃走到应用,每一跳用真正合适它的那种图来画。
Seven hops from a finger to an application. Everything after this page zooms into one of them — and every figure here is built from the same two words: raised is a thing that exists, sunken is somewhere you cannot go or a channel something travels down.从手指到应用,七跳。这一页往后的每一节都是放大其中一跳 —— 而这里每一张图都只用两个词搭出来:凸起是一个存在的东西,凹陷是去不了的地方、或者一条东西从里面走过的通道。
The chip needs an i2c read to hand over the coordinates, and i2c sleeps. The interrupt handler cannot. So the work is split across two contexts, and the band a function sits in decides what it may call — the ringed band is the one where a single i2c_transfer() would deadlock the machine.要拿到坐标得走一次 i2c 读,而 i2c 会睡眠,中断处理函数不能睡。所以活被劈成两段,一个函数在哪条带里,决定了它能调什么 —— 描圈那条带里,一次 i2c_transfer() 就能把机器锁死。
The first register read is 16 bits and it decides everything that follows. Reserved bits are drawn sunken, so you know which ones you may not write without reading the access column. The write-1-to-clear bit carries the accent because it is the one people get wrong — it always reads back 0, and that does not mean your write missed.第一次寄存器读是 16 位,后面所有事都由它决定。保留位画成凹陷,不用读属性列就知道哪些不能写。写 1 清除的那位给强调色,因为它是最容易出错的一个 —— 它读回来永远是 0,而这不代表你那次写没生效。
A backtrace read top to bottom goes from where it died back to where it started, while the stack pointer runs the other way — the address gutter is there to say so. The accent frame is the innermost one, which is the line the reader came for.栈回溯从上往下读是从出事的地方回到起点,而栈指针是反着走的 —— 左边那列地址就是说这个的。强调色标的是最里面那一帧,也就是读者来找的那一行。
Fifty diagram shapes across eight canonical pages. This demo used five of them.八张范本页,五十种框图。这个 demo 用掉了其中五种。