这周学习 嵌入式编程.
微处理器/微控制器
依然是填鸭式地猛灌新名词:
- 内存: registers, SRAM(静态存储器), DRAM(动态随机存取记忆体), EEPROM(只读存储器), FLASH(闪存), fuse
- 外设: A/D(模拟数字转换 Analog to Digital), comparator, D/A, timer/counter/PWM(脉宽调制), USART(串行通信), USB
- word size: 8, 16, 32, 64
- 芯片家族: 8051, PIC, MSP, AVR (我们用到的), ARM STM32 mbed, PSoC xCORE Propeller
- 供应商: Octopart, Digi-Key, Mouser, Newark, Farnell, SparkFun, Adafruit
- 时钟
- 种类:
- RC (10%, 1% calibrated 校准)
- ceramic 陶瓷 (0.5%)
- quartz 石英 (50 ppm)
- PLL 锁相环
- instruction cycles 指令周期
- overclocking 超频
- 种类:
开发
- in-system development (加载程序到处理器)
- ISP: 用来跟编程器交互的程序
- 引导程序(bootloader): Arduino, DFU, Micronucleus
- JTAG 主控器, PDI 并行数据接口
- ICE
- ISP: 用来跟编程器交互的程序
- 编程器
- 汇编语言: hex file, instruction set, opcodes, mnemonics, directives, expressions, avr-as, gavrasm
- C 语言 (Arduino 底层语言): 需要用编译器将 C 语言代码转成十六进制代码(hex codes)
- AVR 依据 GCC (the GNU Compiler Collection) 而设计. AVR Libc 提供 C 语言和 AVR 通信的库
- OS X 请用 CrossPack for AVR
- 在课程中,我们使用 GCC 将 C 语言代码编译成 AVR 可以读懂的十六进制代码
- IDE
- 写程序, 编译, 加载到处理器
- Atmel Studio, Eclipse, AVR, CodeBender
- Interpreters(一般都很慢): Python, BASIC, FORTH, AVRSH, Javascript(Espruino, Tessel, iop.io)
主机通讯
板子
AVR
Atmel AVR系列是一种基于改进的哈佛结构、8位~32位精简指令集(RISC)的微控制器
Arduino: 开发板 + C 语言库 + IDE + 烧录程序 + 头文件
XMEGA: AVR 较新的系列
- features
- toolchain: CrossPack for OS X
ARM
- ARM 是主流的手机处理器架构
- STM32
-
- PandaBoard
- Snappy
- PSoC: 芯片上的可编程系统 windows only