历史上的今天
返回首页

历史上的今天

今天是:2025年04月15日(星期二)

正在发生

2018年04月15日 | LED裸程序

2018-04-15 来源:eefocus

实验的目的:
点亮一盏LED灯

实验的源程序:
@******************************************************************************
@ File:crt0.S
@ 功能:通过它转入C程序
@******************************************************************************       
.text
.global _start
_start:
            ldr     r0, =0x53000000     @ WATCHDOG寄存器地址
            mov     r1, #0x0                     
            str     r1, [r0]            @ 写入0,禁止WATCHDOG,否则CPU会不断重启
            
            ldr     sp, =1024*4         @ 设置堆栈,注意:不能大于4k, 因为现在可用的内存只有4K
                                        @ nand flash中的代码在复位后会移到内部ram中,此ram只有4K
            bl      main                @ 调用C程序中的main函数
halt_loop:
            b       halt_loop



@******************************************************************************
@ File:led_on_c.bin
@****************************************************************************** 
#define GPBCON      (*(volatile unsigned long *)0x56000010)  //(volatile unsigned long *)0x56000010这条语句的作用是将0x56000010值强制转化成一个指针,
#define GPBDAT      (*(volatile unsigned long *)0x56000014)  //然后再在这条语句的基础上加上一个*,是取这个指针所指向的值。

int main()
{
    GPBCON = 0x00000400;    // 设置GPB5为输出口, 位[11:10]=0b01
    GPBDAT = 0x00000000;    // GPB5输出0,LED1点亮

    return 0;
}




@******************************************************************************
@ File:Makefile
@****************************************************************************** 

 led_on_c.bin: crt0.S  led_on_c.c
arm-linux-gcc -g -c -o crt0.o crt0.S
arm-linux-gcc -g -c -o led_on_c.o led_on_c.c
arm-linux-ld -Ttext 0x0000000 -g  crt0.o led_on_c.o -o led_on_c_elf
arm-linux-objcopy -O binary -S led_on_c_elf led_on_c.bin
arm-linux-objdump -D -m arm  led_on_c_elf > led_on_c.dis
clean:
rm -f led_on_c.dis led_on_c.bin led_on_c_elf *.o



实验的问题总结:
<1>关于crt0.S文件的解释
      I.若不关闭看门狗,CPU会一直重启
      II.设置堆栈,是因为在C语言中的局部变量会用得到,这可通过反汇编查看得到;思考:在纯汇编中,没有设置堆栈的原因,个人理解的       是,汇编指令操作的对象是寄存器,所以不需要涉及到分配内存的问题。
       III.在 bl main 这个指令,为何不用 .IMPORT main这个伪指令声明main函数,难道汇编程序可以自动通过标号找到main函数?
      答案:准确地来说,是需要的!  
=================================================================================

IMPORT

语法格式:

IMPORT 标号{[WEAK]}

IMPORT伪指令用于通知编译器要使用的标号在其他的源文件中定义,但要在当前源文件中引用,而且无论当前源文件是否引用该标号,该标号均会被加入到当前源文件的符号表中。

标号在程序中区分大小写,[WEAK]选项表示当所有的源文件都没有定义这样一个标号时,编译器也不给出错误信息,在多数情况下将该标号置为0,若该标号为B或BL指令引用,则将B或BL指令置为NOP操作。

使用示例:

AREA Init,CODE,READONLY

IMPORT Main ;通知编译器当前文件要引用标号Main,但Main在其他源文件中定义

……

END

=================================================================================

<2>关于Makefile文件的解释
       I.  -Ttext 0x0000000这条是指定 led_on_c.bin这个程序在内存中运行时的地址
       II.运行地址指的是程序运行时,其所开始执行的的地方称为运行地址;加载地址是指编译整个Makefile之后,得到的 led_on_c.bin这个
      可执行程序所存放的地方的地址称为加载地址。若加载地址和运行地址不在同一处,那么运行时,需要将其从加载地址处搬移到运行地址处,
      这会略微影响CPU的效能。


推荐阅读

史海拾趣

Achronix Semiconductor Corporation公司的发展小趣事

Achronix Semiconductor Corporation是一家专注于FPGA(现场可编程门阵列)和eFPGA(嵌入式FPGA)技术的公司,以下是该公司发展的五个相关故事:

  1. 公司成立和早期发展: Achronix Semiconductor Corporation成立于2004年,总部位于美国加利福尼亚州圣克拉拉市。公司最初的目标是开发高性能、低功耗的FPGA芯片,以满足日益增长的计算需求和数据中心的要求。起初,公司主要关注FPGA技术的研发和市场定位。

  2. 技术突破和产品推出: 随着公司的不断发展,Achronix取得了一系列技术突破,并成功推出了一系列创新的FPGA产品。其中,公司的Speedster系列FPGA以其出色的性能、低功耗和高集成度而备受关注,成为了市场上的竞争力量。这些产品被广泛应用于网络设备、数据中心、通信、汽车等领域。

  3. 市场扩张和国际合作: Achronix积极拓展国内外市场,并与全球各地的客户建立了合作关系。公司的FPGA产品在全球范围内得到了广泛的应用,并与众多知名企业展开合作,共同推动技术进步和市场发展。同时,Achronix还与各大半导体制造商合作,共同研发新一代FPGA技术。

  4. 持续投入研发和创新: Achronix不断加大研发投入,致力于技术创新和产品升级。公司在硬件设计、架构优化、软件开发等方面进行持续的研究和探索,推动FPGA技术的发展。同时,Achronix还与国内外高校和研究机构合作,共同开展前沿技术的研究。

  5. 未来发展展望: Achronix将继续致力于FPGA和eFPGA技术的研发和应用,不断推出更先进、更高性能的产品和解决方案,满足客户在各个领域的需求。公司将加强国际市场拓展,提升自身在全球市场的竞争力,为行业的发展做出更大的贡献。

High Tech Chips Inc公司的发展小趣事

机顶盒,全称为数字视频变换盒,是连接电视机与外部信号源的重要设备,具有高度的专业性和广泛的应用性。它不仅能接收来自有线电缆、卫星天线、宽带网络及地面广播的数字电视信号,还能将这些信号转换成适合在电视机上播放的格式,极大地丰富了用户的观看体验。

机顶盒分为数字机顶盒和网络机顶盒两大类。数字机顶盒主要实现数模转换功能,使用户能用原有的模拟电视机观看数字电视,包括有线电视、卫星电视和地面广播电视的数字机顶盒。而网络机顶盒则进一步扩展了功能,能接入互联网,提供如IPTV、视频点播、在线游戏、网页浏览等多元化服务,使电视机转变为一个智能互动终端。

机顶盒的工作原理涵盖接收、解码和显示三个关键步骤。通过内置的调谐器接收信号,解调器将信号从载波中提取,解码器再将信号转换为电视可识别的视频和音频流,最终通过电视机呈现给用户。随着技术的不断进步,机顶盒的功能也在不断升级,如支持4K、8K超高清视频播放,搭载智能推荐算法提供个性化内容推荐,以及通过语音识别技术实现便捷操作等。

综上所述,机顶盒作为连接电视与互联网的重要桥梁,其专业性和科普性不言而喻。它不仅为用户提供了丰富多彩的电视节目和娱乐选择,还推动了电视产业的智能化发展,成为现代家庭不可或缺的一部分。

CYMBET公司的发展小趣事

在电子行业中,产品质量是企业生存和发展的关键。CYMBET公司深知这一点,始终将质量管理作为重中之重。公司建立了完善的质量管理体系,从原材料采购、生产制造到产品检测等各个环节都严格把控质量。同时,CYMBET还引进了先进的生产设备和检测仪器,确保产品的可靠性和稳定性。这种对质量的执着追求使得CYMBET的产品在市场上获得了良好的口碑和广泛的认可。

BH Electronics公司的发展小趣事

近年来,随着环保意识的提高,BH Electronics积极响应国家绿色发展的号召,开始了绿色转型之路。公司加大了对环保技术的研发和应用力度,推出了一系列绿色环保产品。同时,BH Electronics还优化了生产流程,减少了能源消耗和废物排放。这些举措不仅提升了公司的环保形象,也为公司的可持续发展注入了新的动力。

这五个故事只是BH Electronics发展历程中的一部分,但它们却生动地展现了这家公司在电子行业中的崛起之路。从初创时期的筚路蓝缕,到技术创新的突破;从国际化战略的拓展,到品质管理的提升;再到绿色发展的转型,BH Electronics始终保持着敏锐的市场洞察力和不懈的创新精神。正是这些因素的共同作用,使得BH Electronics能够在激烈的市场竞争中脱颖而出,成为电子行业中的佼佼者。

承兴(CX)公司的发展小趣事

1996年,承兴公司在香港成立,并迅速设立了亚洲总部。起初,公司专注于电子产品的代理和销售,凭借其敏锐的市场洞察力和高效的供应链管理能力,承兴逐渐在亚洲市场崭露头角。通过与宝洁中国、百事中国等知名品牌建立合作关系,承兴获得了稳定的供应链资源和市场份额。

GSI Technology公司的发展小趣事

进入21世纪后,GSI Technology继续加大研发投入,不仅巩固了其在SRAM领域的领先地位,还成功扩展了产品线,包括同步突发SRAM、无总线周转SRAM等。同时,公司还推出了SigmaRAM、SigmaQuad、SigmaQuad II等系列产品,这些产品以其卓越的性能、高可靠性和低功耗特性,赢得了市场的广泛认可。此外,GSI还致力于提供超长产品支持生命周期和完整的售前售后服务,进一步增强了客户粘性。

问答坊 | AI 解惑

请问以下C代码是什么意思?高手请进!!!

请问以下C代码是什么意思?请问如下代码的含义:据说hook function 是钩子函数,但我并没有在网上搜索到类似的函说说明。不管能否解答都欢迎大家来讨论 typedef void (* PFN_HOOK )(void);            &n ...…

查看全部问答>

一个LED的N种玩法(三)----General Timer

一个LED的N种玩法 (三)---General Timer Author: chenzhufly Email: chenzhufly@126.com 2010-4-29   写完两篇终于等到timer上场了,前面已经有网友提议可以用timer来玩LED,那好吧,在这里我来感受一下timer是怎么操作LED的。Come on… ...…

查看全部问答>

基于飞思卡尔ARM9内核的i.mx27嵌入式开发板在视频传输领域的应用

1.i.MX27产品特性和应用范围: i.MX27是高清视频首选,提供了更高的灵活性和更强大的多媒体处理能力,成为IP视频和语音(V2IP)无绳和移动电话、智能远程控制、POS终端和其他大量无线应用的理想选择。同时,i.MX27开发板的主频从i.MX21的 266MHZ提高 ...…

查看全部问答>

VCS中的coverage merge功能

使用VCS中的coverage工具产生位于不同的coverage database ,请问使用怎样的指令能够merge到一起…

查看全部问答>

关于stm8控制LED问题

在仿真时出错,下面是出错的问题,请高手指教 代码segment\'ram0\'BYTES.Roo ds.b 1.Ro1 ds.b 1.Ro2 ds.b 1.Ro3 ds.b 1.Ro4 ds.b 1.Ro5 ds.b 1.Ro6 ds.b 1.Ro7 ds.b 1.Ro8 ds.b 1MOV TIM1_SMCR,#00HBRES TIM1_ETR,#6MOV TIM1_PSCRH,#00HMOV TIM1_P ...…

查看全部问答>

QtCreator系列教程

很适合初学者使用,教你一步一步使用qt…

查看全部问答>

TFT LCD面板背光应用之TPS65142环路补偿设计考虑因素

作者:Tony Huang,德州仪器 (TI) 电源管理/现场应用摘要 TPS65142器件为笔记本电脑TFT LCD面板的偏置功率和WLED背光提供一种紧凑型解决方案。这种器件拥有一个升压转换器、一个正充电泵稳压器以及一个负充电泵稳压器,用于驱动源极驱动器和栅 ...…

查看全部问答>

自动代码生成技术在汽车电子的应用

  作为一个新的技术,不同的人对他有不同的看法。有人说这种开发效率相当快,但是很难应用到汽车上,我希望下有经验的人讲一下,也希望喜欢这个技术的同行们互相交流看法…

查看全部问答>

【TI DLP创意征集】将DLP技术应用到水质监测或者浓度检测

环保一直是大家所关心的,DLP有类似光谱分析的能力,我觉得可以将其应用到水质监测上,通过DLP对有害物质的检测,将测到的数据通过网络实时的传给环保部门,只有有害物质超标,就会有相应的监管部门进行监督。还有就是家庭用水,有时可能会有未知的 ...…

查看全部问答>

飞猪四轴V1.0软硬件设计资料(飞控+遥控)

replyreload += \',\' + 1980650; 本帖最后由 chenzhufly 于 2016-2-18 23:29 编辑 本着开源的精神,放出飞猪四轴V1.0 硬件设计资料,同时还要像前辈们致敬,这个版本问题还是很多的,我还在苦逼的调试中,大家可以一起学习一下,如果模仿自制 ...…

查看全部问答>