AVR Shell是基于AVR的微控制器的最终开发,调试和教育系统。
AVR Shell是在8位AVR内核上执行的微小的自包式多任务操作系统,例如Atmega328p,它在流行的Arduino板(例如Arduino uno或Arduino Nano)上找到。
Avrshell的目的主要是支持您的硬件开发和或用于用于教育目的。
AVR Shell提供了一个微小的命令行接口,使您可以使用简单命令读取和写入包括所有寄存器和程序内存的AVR内存。
要编译您需要gcc-avr和avr-libc 。尽管此项目是无依赖性的,并且不使用标准libc,但该软件包还包含编译为代码所需的标头文件。
此外,您需要avrdude才能闪烁进行程序。
下载整个源,更改为src/ ,然后在连接您的Arduino板上,简单地运行make and make upload 。您可能会打开Makefile ,并适当地修改USBDEV和BAUD 。
只需通过串行终端程序(例如minicom连接到您的Arduino。只需运行minicom -D /dev/ttyACM0 -o -b 9600 -w即可。
已实现以下命令。
in <reg_addr> ...工作类似于in ,但使用内存映射的说明( ldd )实现。
out <reg_addr> <value> 。 ...工作类似于out指令。
sbi <reg_addr> <bit> ......在IO寄存器中设置位(0-7)。
cbi <reg_addr> <bit> ...... io寄存器中的清除位(0-7)。
dump <addr> [len] ......... dumps len (默认= 512)内存的字节。
pdump <addr> [len] .................................................................................................
edump <addr> [len] ........ comvers len (default = 512)eeprom内存的字节。
ste <addr> <byte> .........将字节写入地址addr 。
cpu ....................... Output CPU information, such as fuse bits, lock bits and signature.
uptime .................... Show system uptime ticks since last reset.
run <pid> ........................................................................................................................................................................................................................................................................
stop <pid> ..........................................................................................................................................................
new <address> ............. Create new process with start routine at address .
ps ........................ List processes, with pid, current stack pointer, and state.状态是在过程中定义的。
所有这些命令均使用ld , lpm和st实现。
AVR Shell处理所有中断,并输出消息,如果捕获了中断。
例外是引导中断0x00,串行中断0x24和0x26,因为它们用于AVR Shell本身。
AVR Shell由Bernhard R. Fischer开发,[email protected]。
PGP密钥: 9867 8E06 0630 07E4 A1F0 B9C5 9BD6 0166 8E24 F29D
不要犹豫与我联系。
使用AVR外壳有Phun!