• Linux 下上手 STC89C52RC


      第一次接触单片机,自然选择了简单的51单片机。然而我的操作系统是 Linux 。在 Windows 下上手51似乎很容易。但是 Linux 上搭建 51 开发环境不是很顺。

    那么谈谈 Linux 我如何搭建 STC89C52RC 的开发环境吧。 

    (一)

    选择自己喜好的代码编辑器即可。vim , emacs , gedit 等都可以。

    (二)

    安装编译器。一般选择 sdcc 。一般可从发行版的包管理器中直接安装。

    如Arch中:

      

    $ sudo pacman -S sdcc

    如果不行,需要自行下载编译。

    简单介绍使用sdcc:

      假如当前目录有一个写好的源文件 main.c 。 使用如下简单方式即可编译。

      

    $ sdcc main.c

      生成的若干个文件中 main.ihx 是一个生成的16进制可执行文件。后面便可以将其烧录到单片机中。

    (三)

    将生成的可执行程序烧录到单片机是需要一条下载线的。一般说来使用 USB 转串口的下载线。插上之后,在 /dev 里面有个设备叫 ttyUSB* 说明可以进行后面内容。

    否则你可能需要安装 USB 转串口的驱动。

    选择烧录工具。网上大部分使用的是 gSTCISP 这个工具烧录。但是在我尝试之后,总是卡在 We are trying to connect your MCU...这个地方。

    起初我还以为下载线出现问题了。后来发现不是。你可以尝试。注意 gSTCISP 需要的是二进制文件,因此需要把 main.ihx 转换为二进制文件。

    一个转换例子:

    $ makebin < main.ihx > main.bin

    你需要把文件名更改成你自己相应文件名。其他方法还有很多,自行搜索。

      通过我测试的一个烧录工具 stcflash 。这是一个 python 脚本。因此你需要安装 python 环境。大部分 Linux 发行版安装了 python 。但是你需要安装一个额外的运行库 python-serial 。

    $ sudo pacman -S python-serial 

    将下载好的 stcflash.py 放入源文件目录。接下来开始烧录。

      首先关闭板子。执行

    $ sudo python ./stcflash.py ./main.ihx

    打开开发板即可烧录进去。成功结果如下:

    Connect to /dev/ttyUSB0 at baudrate 2400
    Detecting target... done
    FOSC: 11.996MHz
    Model: STC89C52RC (ver4.3C)
    ROM: 8KB
    Baudrate: 38400
    Erasing target... done
    Size of the binary: 218
    Programming: #################### done

    另外二进制文件使用 stcflash 也可以烧录进入。

    sdcc 下载地址:http://sdcc.sourceforge.net/snap.php#Linux

    gSTCISP 下载地址:http://osdn.jp/projects/sfnet_gstcisp/releases/?fulllist=1

    stcflash 下载地址:https://github.com/RainMark/stcflash.git

  • 相关阅读:
    李超线段树 [Heoi2013]Segment
    [置顶] 九月半集训总结
    [置顶] 我想学学
    图论+前缀和 任(duty)
    模拟 飞(fly)
    入坑 可持久化线段树——主席树
    一次爆炸的联考
    HASH+平衡树 [JSOI2008]火星人prefix
    乱搞+STL平衡树 序列
    数学+图论 建造游乐场
  • 原文地址:https://www.cnblogs.com/rain-blog/p/how-to-set-51-environment-in-linux.html
Copyright © 2020-2023  润新知