历史上的今天
返回首页

历史上的今天

今天是:2025年01月16日(星期四)

正在发生

2020年01月16日 | 单片机成长之路(51基础篇) - 006 在Linux下搭建开发烧写环境

2020-01-16 来源:eefocus

在Linux下没有像keli那样好用的IDE来开发51单片机,开发环境只能自己搭建了。 


第一步:安装交叉编译工具 

a) 安装SDCC 

sudo apt-get install sdcc 

b)测试SDCC是否可用,这是个网上找的简单的流水灯代码 test.c, 用来测试


 1 #include "8051.h"

 2 

 3 #define uint unsigned int 

 4 #define uchar unsigned char 

 5 uchar tab[8] = {0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};

 6 

 7 void Delay(uint xms){

 8         uint i,j;

 9         for(i=xms;i>0;i--)

10         for(j=110;j>0;j--);

11 }

12 

13 void main(){

14     uchar i;

15     while(1){

16         for(i=0;i<8;i++){

17             P1 = tab[i];

18             Delay(100);

19         }

20     }

21 }


编译它: 

sdcc test.c 

会生成这么多的文件(我们只需要其中的 test.ihx):


test.lk test.map test.rel test.sym test.asm test.ihx test.lst test.mem test.rst 


packihx file.ihx >file.hex 转换为hex文件

接着下载hex2bin文件,网址(http://sourceforge.net/projects/hex2bin/files/latest/download)。


hex2bin sourcefile.hex。之后就会生成sourcefile.bin文件。

注意:为了方便以后调用hex2bin,可以将路径加入到 .bashrc文件在~/.bashrc最后一行加上Hex2bin 所在的文件夹位置:


PATH=$PATH:/home/jikexianfeng/51-demo/Hex2bin-2.5

可以写个makefile文件,编译方便些 

这是我写的makefile:


1 test.hex : test.c

2     sdcc test.c

3     packihx test.ihx > test.hex

4     hex2bin test.hex

5 clean:

6     rm -rf *.asm *.lst *.mem *.rst *.lnk *.rel *.sym *.ihx *.hex *.map

第二步:安装烧写工具 

a)下载stcflash: http://github.com/laborer/stcflash ,这是个用python写的向单片机烧写bin文件的软件 

b)安装环境:sudo apt-get install python-serial 

c)烧写 : sudo python ./stcflash.py test.bin


解决 ImportError: No module named 'serial' 问题


Traceback (most recent call last):

  File "/home/jikexianfeng/51-demo/.stcflash/stcflash.py", line 22, in

    import serial

ImportError: No module named serial

解决办法(安装 serial module,这里区分python2和 python3):


sudo apt install python-pip //python2

sudo apt install python3-pip    //python3

安装python3的 pip3的时候,如果时国内的软件源可能安装不上,(当时用中国科学技术大学的软件源,python3-pip下载有问题),换成ubuntu官网成功下载。


安装pyserial:


pip install pyserial    //python2

pip3 install pyserial   //python3


可以从pyserial下载这里去获取源码进行熟悉和学习。

推荐阅读

史海拾趣

Adam Tech公司的发展小趣事

随着全球环保意识的提高,Adam Tech也积极响应绿色制造的号召。公司在生产过程中采用环保材料和工艺,减少对环境的影响。同时,公司还加大了对绿色产品的研发力度,推出了一系列符合环保标准的产品。这些举措不仅提升了公司的社会形象,也为公司的可持续发展奠定了坚实的基础。

这五个故事只是Adam Tech在电子行业发展过程中的一部分缩影。正是凭借着对技术的不断追求、对品质的严格把控以及对市场的敏锐洞察,Adam Tech得以在激烈的竞争中脱颖而出,成为电子连接器行业的佼佼者。

硕颉(BITEK)公司的发展小趣事

为了持续提升产品质量和客户满意度,硕颉科技于2005年通过了ISO9001质量管理体系认证。这一认证标志着公司在质量管理方面达到了国际标准,也进一步提升了公司的行业地位和竞争力。通过实施严格的质量管理体系,硕颉科技确保了产品从设计、研发到销售的每一个环节都符合高质量标准,为客户提供了可靠的产品和服务。

这些故事只是硕颉科技发展历程中的一部分,它们共同展示了公司在电子行业中不断壮大、创新发展的历程。未来,硕颉科技将继续秉承创新、质量、服务的理念,不断推出更多优质产品,拓展更广阔的市场空间,为电子行业的发展贡献更多力量。

Data Translation Inc公司的发展小趣事

在电子行业中,市场竞争激烈、技术更新换代迅速。Data Translation在发展过程中也遇到了不少挑战和困难。但公司始终坚持以客户为中心、以技术创新为驱动的发展理念,积极应对市场变化和挑战。公司通过加大研发投入、优化产品结构、拓展市场渠道等方式不断提升自身的竞争力和适应能力。这些努力使公司在面对市场变化和挑战时能够保持稳健的发展态势。

GHI Electronics公司的发展小趣事

GHI Electronics深知技术创新是企业持续发展的关键。因此,公司不断加大研发投入,致力于开发具有自主知识产权的产品。其中,ARM微控制器、显示模块、空气质量传感器、模块化系统以及微处理器等主打产品系列,凭借其卓越的性能和稳定的品质,在消费电子、便携设备、通讯/网络等领域获得了广泛应用。这些技术创新不仅巩固了GHI Electronics在市场上的领先地位,也为其未来的发展奠定了坚实的基础。

ASSMANN WSW components公司的发展小趣事

ASSMANN WSW components公司一直致力于技术创新和产品研发。在某个关键时刻,公司研发团队成功开发出了一种具有革命性的新型连接器,这种连接器不仅性能稳定、寿命长,而且具有极高的可靠性和安全性。这一技术突破使得ASSMANN WSW在电子元件市场上脱颖而出,迅速成为行业内的佼佼者。

振宝佳(DMBJ)公司的发展小趣事

随着大陆市场化程度的加深和基础设施的完善,振宝佳公司看到了大陆市场的巨大潜力。为了更好地服务大陆客户,公司于2005年做出了重大战略转移,将总部迁移到塘厦。这一决策不仅使公司能够更贴近市场,也为其后续的发展奠定了坚实的基础。

问答坊 | AI 解惑

紧急求教一个电路 很茫然

我只知道是三轴位置传感器接口电路 也不知道是不是 高手来讲解一下哈 谢谢…

查看全部问答>

2008 电子设计 A题 原创作品 基于ARM (省二等奖内附参赛论文)

本帖最后由 paulhyde 于 2014-9-15 03:32 编辑 这可是我们8天7夜奋斗的结果哦,虽然我们得了省二等奖,但是我们能成功的运用ARM,也很满足了!~!~ 下载不了的可以留下你们的邮箱!~!~! [ 本帖最后由 歹匕示申 于 2008-12-25 14:50 编辑 ] ...…

查看全部问答>

怎么样实现SQLCE数据库高速数据保存

最近忙一个项目,时间紧迫了,可目前遇到一个严重的问题,详情是这样:我用EVC.0编一个程序来把采集的数据保存在嵌入式设备的SQLCE数据库中,但弄来弄去发现保存速度跟不上,不知道各位大侠是否知道有什么方法能实现数据库的高速保存。感激不尽啊, ...…

查看全部问答>

触摸屏驱动采样请教

DdsiTouchPanelGetPoint(         TOUCH_PANEL_SAMPLE_FLAGS        *pTipStateFlags,         INT                      ...…

查看全部问答>

求助:CodeWarrior for ADS 1.2中编译出错

工程中,用ADS编译,出现了Errors: Could not find or load the file 襐IC.a?for target 褼ebugRel?for project 襱est1.mcp? Could not find or load the file 褻omm.a?for target 褼ebugRel?for project 襱est1.mcp? The following access p ...…

查看全部问答>

低手问一个问题

现在感觉学啥都没意思,所以打算学点充实点的东西 打算学嵌入式。但不知道从哪里开始。我没有硬件。也不知道是不是要用个什么模拟器 请问,应该怎么学呢 是不是要从单片机开始????…

查看全部问答>

MSP430F435学习板 超低价格出售 仅售100元

请登陆淘宝进行详细的细节查询 淘宝地址:      http://auction1.taobao.com/auction/0/item_detail-0db2-a975eaf6e989403d6987eeb2fde3c9d9.jhtml    欢迎购买. …

查看全部问答>

跪求 :用VB.Net 在Wince 平台下画一个点

小弟刚入道,就遇到棘手的问题,希望大家帮忙啊,谢谢! 问题如下 在Wince下 我在Form1中添加了一个PictureBox1,想在上面画个点,或者圆 结果发现连Paint()函数都没 ,郁闷;还有 CreatGraphic函数也没,该怎么办啊? 使用VB.net2005 谁能发个 ...…

查看全部问答>

实用型应急灯

    [ 本帖最后由 ddllxxrr 于 2010-8-24 10:49 编辑 ]…

查看全部问答>

wanghongyang我还惦记着那个3.5液晶

不知道准备的怎么样了?准备随时出手了:D…

查看全部问答>