历史上的今天
返回首页

历史上的今天

今天是:2024年12月17日(星期二)

正在发生

2020年12月17日 | TQ210的裸机编程(一)点亮一个LED灯

2020-12-17 来源:eefocus

初学TQ210不久,以前一直看CSDN的zjhsucceed_329的博客学习,最近发现,他的博客关于TQ210的帖子被删除很多了,为了更多的人能学习TQ210的裸机编程,凭自己的印象,和自己的一些见解,写一些关于裸机编程的一些入门知识,希望爱好这方面的人,能给出宝贵的意见,一起共同成长。


既然是裸机编程,点亮一个LED灯,就像写一个helloworld一样,虽然简单,但是又是一个不得不学的入门知识。


在TQ210的资料《TQ210_BOARD_V4_20121023》可以找到LED的电路图,从图中很清楚的看到,要使LED灯亮,只需要将GPC0_3和GPC0_4,这2个引脚高电平即可。《天嵌科技出品-TQ210_BOARD_V4用户硬件手册_V1.0》的电路图画的确实GPC1_3和GPC1_4这2个引脚(没有做过实验是否正确,仅为提示)。


既然知道只需要将GPC0_3、GPC0_4设置为高电平就能使灯亮,我们只需要去查看QT210的使用手册《S5PV210_UM_REV1.1》搜索GPC0即可。找到GPC0CON他的控制寄存器,如图:




然后搜索GPC0CON的使用:



我们点灯,需要的是GPC0CON[3]和GPC0CON[4]2个的操作,让他们输出高电平,所以要将控制寄存器的地址0xE0200060转为2进制,并将[12:15]和[16:19]位设置为Output,及设置为一个输出端口,至于是高电平,还是低电平由GOC0DAT来设置。


下面来看GPC0DAT的介绍:



由他的描述很容易知道,在输出的设置下,要想输入高电平,只需将GOC0DAT的[4:0]位设置成相应的位,举个例子比较容易明白:


如果想让GPCO_3输出为高电平,因为是第三个,则他相应的位就是2^3(十进制)=8(十六进制),GPC0_4就是2^4(十进制)=10(十六进制),则[4:0]分别是01000和10000,如果想让他们同时亮,则设置成11000即可,16进制就是18。



代码是以前根据zjhsucceed_329的博客写的,所以跟他的代码是一样的(在这做个申明,支持原创作者的版权,虽然现在没得这篇文章,自己以前抄袭的例子),是点亮一个LED灯,有兴趣的人可以自己仿造写一个,2个灯同时亮的程序,为了只是让自己了解裸机编程在位操作的重要,和对查手册的重要性,所以英语不好的朋友也要多恶补一下(比如我自己就是个很好的例子)。



led_on.S文件


.global _start                @声明一个全局的标号

_start:

     ldr r0, =0xE0200060        @GPC0CON寄存器

     ldr r1, =0x00001000        

     str r1, [r0]            @设置GPC0_3为输出,GPC0[15:12] = 0b0001


    ldr r0, =0xE0200064        @GPC0DAT寄存器

     ldr r1, =0x00000008        

     str r1, [r0]            @设置GPC0_3为高电平


halt:

     b halt                    @死循环



makefile文件


led_on.bin: led_on.o 

    arm-linux-ld -Ttext 0x20000000 -o led_on.elf $^

     arm-linux-objcopy -O binary led_on.elf $@

     arm-linux-objdump -D led_on.elf > led_on.dis

     

led_on.o : led_on.S

     arm-linux-gcc -c $< -o $@


clean:

     rm *.o *.elf *.bin *.dis


推荐阅读

史海拾趣

EFINIX公司的发展小趣事

随着中国电子行业的快速发展,EFINIX公司看到了巨大的市场潜力。公司积极拓展中国市场,与中国本土企业展开合作,推动Quantum™可编程加速器技术和Trion FPGA产品在中国市场的应用。EFINIX公司的产品和服务得到了中国客户的广泛认可,为中国电子行业的发展做出了积极贡献。

CONTTEK Group GmbH公司的发展小趣事

CONTTEK Group GmbH公司的创立,标志着电子行业内一颗璀璨的新星开始崭露头角。公司在创立初期,便凭借对市场的敏锐洞察力和对技术的深刻理解,确立了在电子连接器领域的专业地位。通过引进先进的生产设备和技术人才,公司成功开发出了一系列高质量、高性能的连接器产品,并逐渐在市场中获得了认可。

Aborn Electronics Inc公司的发展小趣事

Aborn Electronics Inc公司创立之初,面临着资金短缺、市场竞争激烈和技术壁垒等多重挑战。创始人凭借对电子技术的深厚理解和对市场需求的敏锐洞察,带领团队攻克了一个又一个技术难关。公司最初的产品线集中在电子元器件的生产和供应上,通过优化生产流程和降低成本,逐渐在市场上站稳了脚跟。同时,Aborn Electronics积极与各大电子厂商建立合作关系,为公司的长远发展奠定了坚实的基础。

E-San Electronic Co Ltd公司的发展小趣事

随着全球环保意识的提高和可持续发展的呼声日益高涨,E-San Electronic Co Ltd积极响应这一趋势,将环保和可持续发展理念融入企业的日常运营中。公司采用环保材料和节能技术生产电子产品,减少了对环境的污染和资源的浪费。同时,公司还积极参与各种环保公益活动和社会责任项目,为社会做出了积极的贡献。这些举措不仅提升了企业的社会形象和声誉,也为企业赢得了更多消费者的信任和支持。

优先(苏州)半导体公司的发展小趣事

某苏州半导体公司自成立以来就坚持国际化战略,积极拓展海外市场。公司拥有一支高素质的研发团队和技术人员队伍,不断引进国际先进技术和设备,提高产品质量和竞争力。同时,公司积极参与国际交流与合作,与国际知名半导体企业建立了长期稳定的合作关系。这些举措使公司在国际市场上获得了良好的声誉和地位,产品远销欧美、日韩等国家和地区。随着公司规模的不断扩大和实力的不断增强,某苏州半导体公司将继续秉承国际化战略,推动公司向更高层次、更广领域发展。

这些故事展示了苏州半导体公司在不同领域和方面的发展和成就。这些公司凭借自身的技术实力、创新能力和市场洞察力,在激烈的竞争中脱颖而出,成为电子行业的佼佼者。

Bce Sud公司的发展小趣事

随着技术的成熟,Bce Sud开始积极拓展市场,与多家电子设备制造商建立了合作关系。通过与这些企业的紧密合作,Bce Sud的产品逐渐应用于智能手机、平板电脑等消费电子产品中。同时,公司还积极寻求与上下游企业的战略合作,共同推动产业链的升级与发展。

问答坊 | AI 解惑

电子竞赛人应该具备的经验

本帖最后由 paulhyde 于 2014-9-15 09:00 编辑 电子竞赛人应该具备的经验 1.许多人死在第一天上午,却毫无知觉. 第一天上午是一个选题的日子.一般每个组都有一个能力比较强的担任组长.往往由于缺乏经验,在方案选定上走上歧路. 到底 ...…

查看全部问答>

基于Windows CENET的嵌入式PC视频监控系统.pdf

基于Windows CENET的嵌入式PC视频监控系统.pdf…

查看全部问答>

zlib内存解压缩问题!

我将程序代码进行压缩,然后烧进flash里,用zlib进行解压缩时,总是出Z_DATA_ERROR!为什么? 我是用winrar进行压缩的!难道不行吗?…

查看全部问答>

驱动/单片机/嵌入式群 18483749 欢迎高手加入!

名称:驱动/单片机/嵌入式群 群号:18483749 简介:c/c++,单片机,驱动开发,工业控制.技术交流…

查看全部问答>

在ceshell下的SHBindToParent函数有人能解释下如何用吗?请用中文解释,到msdn上抄袭没有意义。 

在ceshell下的SHBindToParent函数有人能解释下如何用吗?请用中文解释,到msdn上抄袭没有意义。 …

查看全部问答>

#define ADC2 ((ADC_TypeDef *) ADC2_BASE)

#define ADC2 ((ADC_TypeDef *) ADC2_BASE) 中(ADC_TypeDef *) ADC2_BASE是什么啊定义一指针变量吗求解…

查看全部问答>

Launchpad串行驱动44键盘

哪位高手有收藏到有基于Launchpad串行驱动44键盘的程序,麻烦分享一下!感激不尽…

查看全部问答>

人人都爱易电源——转发有礼!

人人都爱易电源——转发有礼! 活动主题:人人都爱易电源——转发有礼! 活动时间:10月11日—28日 活动链接:https://bbs.eeworld.com.cn/thread-352431-1-1.html …

查看全部问答>

LM4F231在IAR下的float变量

芯片是LM4F231, ARM M4的内核,开发环境是IAR 6.3。     遇到的问题,当定义局部变量时比如 float f=1.1; 时在IAR下察看local 局部变量值时发现f变量值为 也没有分配变量地址。        对于这一问题研究了很久, ...…

查看全部问答>

SOPC

亲,为什么我用Quratus II 11.0的SOPC生成的SDRAM控制器,没有SDRAM的时钟管脚呀?????…

查看全部问答>