龙芯平台51单片机开发环境搭建笔记

作为玩过51单片机但依然处于小白阶段的我不乖乖在 Keil 下写 C51 似乎有点说不过去,但反正学着玩,这样又有什么关系呢。毕竟C51是我最早接触的C语言版本,还是有点情结的。这篇文章也算是对网上各种资料的简单整理、继承和发展。

硬件和操作系统

  • 开发板:比较有名的 TX-1C 开发板。C51也是我最早接触的C语言版本;
  • 单片机:STC 89C52RC
  • 主机主板:龙梦的 Lemote A1901,搭载龙芯 3A4000 处理器;
  • 系统:龙梦 Fedora 28

安装软件

驱动

TX-1C 的 RS232-USB 转换芯片是 PL2303,驱动在 Fedora28 中已经集成。

通过 lsusbdmesg | grep usb 可以查看到设备的信息,也可以看到分配的设备名称为 ttyUSB0 。当然也可以通过串口线连接主板和开发板的串口,设备名称通常为 ttyS0。

IDE

CodeBlocks 配合 SDCC 编写单片机程序。

sudo dnf install codeblocks sdcc

SDCC 的语法和 Keil 略有不同,可以参考 SDCC 的文档 http://sdcc.sourceforge.net/doc/sdccman.pdf

烧写工具

使用 stcflash:https://github.com/laborer/stcflash
支持bin文件和ihx/hex文件,在该网址中有详细的使用说明。
python 在 Fedora28 自带,但是需要手动安装依赖的库。

sudo dnf install python2-pyserial

在 stcflash.py 同目录通过 python stcflash.sh <filename> 运行。

串口调试工具

Linux 下的串口调试软件有很多,比如字符界面的 minicom 和图形界面的 cutecom 和 putty,可以直接通过 dnf 安装。

sudo dnf install minicom cutecom putty

CodeBlocks设置

新建 MCS51 Project,却显示找不到编译器,需要手动配置。
下面的设置方法完全是个人摸索出来的,如果有所差错或遗漏请具体问题具体分析~

  • Debuger

菜单栏 Settings→Debuger,选中 GDB/CDB debugger,单击 Create Config,名称可以随便添,为了方便可以设为 sdcdb。
单击 ok 后可以看到选项框中多出了刚添加的选项,选中它,将 Executable path 设为sdcdb命令的目录,通常在 /usr/bin 下。在龙芯 Fedora28 下,由于命令名称有所不同,为 /usr/bin/sdcc-sdcdb 。
其他设置保持不变,单击 OK 保存退出。

  • Compiler

菜单栏 Settings→Compiler,在 Selected compiler 的下拉框中选中 Small Device C Compiler。找到 Toolchain executables,将Compiler's installation directory 设置为 /usr;将 Program Files 每个选项按照下面的表格填写(不同的发行版会有所不同),其中 Debugger 一项根据前面的设置选择。

项目 龙芯 Fedora28 下的文件名
C compiler sdcc-sdcc
C++ compiler sdcc-sdcpp
Linker for dynamic libs sdcc-sdcc
Linker for static libs sdcc-sdcclib
Debugger GCB/CDB debugger: sdcdb
Resource compiler --(留空)--
Make program make

点击 OK 保存。

  • packihx

按上面的设置后发现依然编译失败,查看 Build log 发现没有 packihx 命令,显然正确的命令应该是 sdcc-packihx,多方查找没有找到合适的修改方法,决定做一个软链接。

打开终端,首先进入命令所在的目录 cd /usr/bin ,查看已有的命令,确认文件名正确,运行 sudo ln -s sdcc-packihx packihx 完成软链接的建立。再次编译编译成功。

by SDUST weilinfox
原文链接:https://www.cnblogs.com/weilinfox/p/12298907.html

posted @ 2020-02-12 14:14  桜風の狐  阅读(845)  评论(0编辑  收藏  举报