如何在Linux下进行stc51单片机的开发

发布者:码字狂徒最新更新时间:2019-03-18 来源: eefocus关键字:Linux  stc51单片机 手机看文章 扫描二维码
随时随地手机看文章

第一次接触单片机,自然选择了简单的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


关键字:Linux  stc51单片机 引用地址:如何在Linux下进行stc51单片机的开发

上一篇:51单片机sfr sbit bit学习
下一篇:51单片机串口配置

推荐阅读最新更新时间:2024-03-16 16:25

基于tiny4412的Linux内核移植(支持device tree)(二)
平台简介 开发板:tiny4412ADK + S700 + 4GB Flash 要移植的内核版本:Linux-4.4.0 (支持device tree) u-boot版本:友善之臂自带的 U-Boot 2010.12 (为支持uImage启动,做了少许改动) busybox版本:busybox 1.25 交叉编译工具链: arm-none-linux-gnueabi-gcc (gcc version 4.8.3 20140320 (prerelease) (Sourcery CodeBench Lite 2014.05-29)) 步骤 继续上文。 由于Linux-4.4.0对tiny4412已经有了很好的支持,所以留给我
[单片机]
基于嵌入式Linux和MiniGUI为平台的智能导诊系统设计
通过研究基于MIPS架构的SMP8654芯片的硬件架构,并且利用芯片内部的图形加速引擎GFX的方式实现了具有高清视频显示和图片文字处理功能的播放器。系统以嵌入式Linux和MiniGUI为平台设计了智能导诊系统,提高了医院的导诊就医的服务效率。智能导诊系统能够播放医院相关的健康宣传资料、专家排班信息。  MIPS微处理器是指无内部互锁流水级的处理器,它是由斯坦福大学的Hennessy教授领导的研究小组研制出来的。MIPS微处理器采用RISC(Recluced InstructionSet Computer)的设计原则,只支持有限的机器指令以及简单的算术指令,通过提供大量的内部寄存器减少内存访问次数。MIPS有32个通用寄存器
[单片机]
基于嵌入式<font color='red'>Linux</font>和MiniGUI为平台的智能导诊系统设计
arm驱动linux内核链表
《 linux内核链表》涉及内核驱动函数五个,内核结构体一个,分析了内核驱动函数二个;可参考的相关应用程序模板或内核驱动模板零个,可参考的相关应用程序模板或内核驱动一个 一、描述   链表是一种常用的数据结构,它通过指针将一系列数据节点连接成一条数据链。相对于数组,链表具有更好的动态性,建立链表时无需预先知道数据总量,可以随机分配空间,可以高效地在链表中的任意位置实时插入或删除数据。链表的开销主要是访问的顺序性和组织链的空间损失。通常链表数据结构至少包含两个域:数据域和指针域,数据域用于存储数据,指针域用于建立与下一个节点的联系。Linux内核中使用了大量的链表结构来组织数据。这些链表大多采用了include/linux/list
[单片机]
OK6410A 开发板 (八) 99 linux-5.11 OK6410A 文件访问实例mmap与read的比较
mmap 和 write 的实现 他们两个的实现,其实重点都在 linux 中,所以要比较 他们的区别,要注意 以下流程 在 linux 内核中的区别 open - addr=mmap(...); - addr - close open - read - close 相同点 要将 磁盘上的文件内容 搞到 用户能访问到的内存 里面,需要关注以下数据及过程,mmap和read都做了这些工作 1.硬盘中文件 的 起始硬盘地址 和 长度 2. 内核空间的虚拟内存地址 和 对应的 物理内存地址A 和 映射关系A 3. 用户空间的虚拟内存地址 和 对应的 物理内存地址B 和 映射关系B 4.文件内容从
[单片机]
[linux kernel] 内核下ksz8081驱动调试
系统版本:Ubuntu18.04-64 编译器版本:gcc version 7.4.0 (Ubuntu/Linaro 7.4.0-1ubuntu1~18.04.1) uboot版本:2018.07 -linux4sam_6.0 板子型号:at91sama5d3x-xplained MCU型号:sama5d36 原理设计,电源是通过MCU控制的,RST也是通过MCU控制的;外部晶振50M;这样做的好处是,MCU复位之后,PHY芯片一定会被复位,防止PHY由于EMC问题死机,软件复位不了,可以通过电源让芯片强制下电,从而恢复工作; 一、PHY在内核配置中需要使能对应的芯片厂商驱动Micrel公司PHY; m
[单片机]
[<font color='red'>linux</font> kernel] 内核下ksz8081驱动调试
linux 2.6.24.4在S3C2410上的移植(CS8900网卡驱动)(基于GEC2410)
SMDK2410配置默认使用的是DM9000A的网卡,因此我们需要修改成CS8900A的网卡驱动. 网上找到移植方法有两种方法,一种是将以前版本的cs8900.c驱动拿过来用,只要在配置中增加ARM_CS8900选项,这个代码网上有很多,拿过来试了以下,的确没问题. 另一种方法是修改2.6.24.4自带的cs89x0.c驱动,这个驱动没有2410的直接支持,我们需要修改. 这里采用第二种方法.参考了网上很多方法,将我的步骤整理如下,如有错误,欢迎指正. 1.内核配置菜单 由于cs89x0驱动依赖于NET_PCI,见drivers/net/Kconfig depends on NET_PCI && (ISA || M
[单片机]
<font color='red'>linux</font> 2.6.24.4在S3C2410上的移植(CS8900网卡驱动)(基于GEC2410)
Linux-2.6.32.2内核在mini2440上的移植(六)---添加LCD背光驱动
移植环境 1,主机环境:VMare下CentOS 5.5 ,1G内存。 2,集成开发环境:Elipse IDE 3,编译编译环境:arm-linux-gcc v4.4.3,arm-none-linux-gnueabi-gcc v4.5.1。 4,开发板:mini2440,2M nor flash,128M nand flash。 5,u-boot版本:u-boot-2009.08 6,linux 版本:linux-2.6.32.2 7,参考文章: 嵌入式linux应用开发完全手册,韦东山,编著。 Mini2440 之Linux 移植开发实战指南 到目前为止,我们一直都在命令行下移植,查看结果,LCD 屏幕上似乎总是如伸手不见五指
[单片机]
<font color='red'>Linux</font>-2.6.32.2内核在mini2440上的移植(六)---添加LCD背光驱动
怎样在Linux上开发STM32程序
步骤1:下载所需的一切 您需要下载三个部分才能正常工作: 用于ARM的GCC编译器 STM32固件文件 St-link实用程序 Sample Project 编译器是将我们的C代码和所有其他库文件编译成stm32控制器可以理解的机器语言的主要软件。下载此编译器的最新预编译版本。 包含STM32固件的文件夹是保存主处理器运行所需的所有启动文件和核心文件的文件夹。我们将使用HAL已超越的标准外围设备库。我更喜欢StPeriphLibrary,因为使用该处理器的公司都在使用它们,因为它功能强大,更老旧并且受支持。它也更坚固。它不会减少初始化外围设备或打开LED所需的工作,但是会迫使您学习这些处理器的工作方式。这样一来,您将对内部工作
[单片机]
怎样在<font color='red'>Linux</font>上开发STM32程序
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved