microscheme, Atmel微控制器的方案子集

分享于 

6分钟阅读

GitHub

  繁體 雙語
A Scheme subset for Atmel microcontrollers.
  • 源代码名称:microscheme
  • 源代码网址:http://www.github.com/ryansuchocki/microscheme
  • microscheme源代码文档
  • microscheme源代码下载
  • Git URL:
    git://www.github.com/ryansuchocki/microscheme.git
    Git Clone代码到本地:
    git clone http://www.github.com/ryansuchocki/microscheme
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/ryansuchocki/microscheme
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    Microscheme

    Microscheme是专为Atmel微控制器设计的一种方案子集,特别是在Arduino板上。

    最近的更改

    • Microscheme现在已经应用 !
    • Microscheme现在有一个 FFI !

    编译

    快速启动

    $ make hexify

    $ make build

    $./microscheme examples/BLINK.ms

    如果你有一个 arduino ,请按以下步骤操作:

    $./microscheme -m [MODEL] -d [/dev/WHATEVER] -auc examples/BLINK.ms

    详细信息

    microscheme源代码位于 src/,包括用C (. c,. h ) 编写的文件,程序集(. s ) 和 microscheme (. ms )。

    为了编译 microscheme,用程序集和microscheme编写的源文件是'hexified',换句话说,转换为C 字节数组,调用 $ make hexify。 接下来,通过调用 $ make build 编译编译器。

    结果是独立的二进制文件'microscheme',它完全包含自包含,并且可以与这个存储库中的其他文件分离。 在linux系统上,调用 $ sudo make install 将二进制文件复制到/usr/local/bin/,,从而使它的可用系统宽。

    用法

    在最近的提交中,用法是:

    
    Usage: microscheme [-auscvrio] [-m model] [-d device] [-p programmer] [-w filename] [-t rounds] program[.ms]
    
    
    
    Option flags:
    
    
     -a Assemble (implied by -u or -s) (requires -m)
    
    
     -u Upload (requires -d)
    
    
     -s Disassemble (to inspect final binary)
    
    
     -c Cleanup (removes intermediate files)
    
    
     -v Verbose
    
    
     -r Verify (Uploading takes longer)
    
    
     -i Allow the same file to be included more than once
    
    
     -o Disable optimisations 
    
    
     -h Show this help message 
    
    
    
    Configuration flags:
    
    
     -m model Specify a model (UNO/MEGA/LEO...)
    
    
     -d device Specify a physical device
    
    
     -p programmer Tell avrdude to use a particular programmer
    
    
     -w files 'Link' with external C or assembly files
    
    
     -t rounds Specify the maximum number of tree-shaker rounds
    
    
    
    
    

    先决条件

    为了编译 microscheme,你需要一些GCC和unix工具XXD的实现。 ( 可以在 linux/osx上使用)。

    In assemble avr avr avr avr avr avr avr avr avrdude avr assemble assemble。 如果使用-a或者-u选项,Microscheme将尝试直接调用这些工具。 所有好的linux都有软件包:发行版

    例如,在 Arch Linux 上:

    $ sudo pacman -S avr-gcc avr-libc avrdude

    或者,在Ubuntu或者Debian上:

    $ sudo apt-get install gcc-avr avr-libc avrdude

    这些工具可以通过 HomebrewMacPorts包管理器在 Mac OS X 和上的WinAVR插件项目上获得。

    目标

    Microscheme当前支持 atmega168/328 (。在 Arduino UNO上使用),ATMega2560 (。用于大多数 Arduino MEGA ) 和 ATMega32u4. 使用 命令行 参数 -m follwed将目标控制器设置为 MEGAUNO 或者 LEO ( 如果只是编译,则不需要)。

    注:一个带有 168/328 芯片( 通过一个带有芯片的单板机进行编程)的Arduino可以被视为一个 UNO,因为它使用相同的芯片。

    其他芯片可以通过在 models.c 中写模型定义来支持,包含来自相关的Atmel数据表的值。

    命令行编译器管道

    由 main.c, 编排的整个编译器管道是:

    。。→ scoper.c → codegen.c。

    如果给定了 -a ( 集合) 选项:

    [assembly code] → avr-gcc → [ELF binary] → avr-objcopy → [IHEX binary]。

    如果给定了 -u ( 上载) 选项:

    [IHEX binary] → avrdude → Arduino设备

    许可证

    麻省理工学院许可证( MIT )

    版权所有( c ) 2014 Ryan Suchocki

    若要在取得该软件副本时免费授予任何人,如有下列条件的软件,请免费授予该软件的副本,并与相关的文档文件("软件") 进行许可,包括不受限制的权利,包括以下条件:

    上述版权声明和本许可声明须包括在所有的副本或实质性部分的软件。

    软件是"是",没有任何保证,表示或者隐含,包括但不限于销售,适合特定用途和 NONINFRINGEMENT。 作者或者版权持有人在合同。侵权或者它的他与软件或者它的他用户交易的行为。


    相关文章