历史上的今天
返回首页

历史上的今天

今天是:2024年10月12日(星期六)

正在发生

2018年10月12日 | OK6410裸机学习第三天:3th_leds_c

2018-10-12 来源:eefocus

start.S文件:

.globl _start

_start:

1、硬件相关的设置:把外设的基地址告诉CPU 

0 ~ 0x6fff ffff为内存的地址空间,0x7000 0000 ~ 0x7fff ffff为外设寄存器的地址空间

    //Peri port setup 

    ldr r0, =0x70000000

    orr r0, r0, #0x13

    mcr p15,0,r0,c15,c2,4       @ 256M(0x70000000-0x7fffffff)

    

2、关看门狗 ,往WTCON(0x7E004000)写0 

    ldr r0, =0x7E004000

    mov r1, #0

    str r1, [r0]

3、 设置栈,nand flash启动的时候,一上电硬件会强制性的把前8K的内容复制到内存里,

       我们的程序比较小小于8K,所以可以把堆栈指针指向8K以外的空间即可,           

       只要那部分内存没有被使用既可以                                             

       在调用C函数之前必须设置栈,调用汇编函数之前不用设置栈                      

   

    ldr sp, =8*1024                   //栈地址设为片内内存

    bl xxxxx                               //调用C函数

    halt:

    b halt

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

LED.c文件:

void delay()

{

volatile int i = 0x10000;

while (i--);

}

int xxxxx()

{

    int i = 0;

    volatile unsigned long *gpmcon = (volatile unsigned long *)0x7F008820;

    volatile unsigned long *gpmdat = (volatile unsigned long *)0x7F008824;

    *gpmcon = 0x1111;               //设置 gpm0,1,2,3设为输出引脚 

    while (1)

    {

        *gpmdat = i;

        i++;

        if (i == 16)

            i = 0;

        delay();

    }

    return 0;

}

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

Makefile文件:

led.bin: start.o led.o

    arm-linux-ld -Ttext 0 -o led.elf start.o led.o

    arm-linux-objcopy -O binary led.elf led.bin

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

start.o : start.S

    arm-linux-gcc -o start.o start.S -c

led.o : led.c

    arm-linux-gcc -o led.o led.c -c

    

clean:

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


推荐阅读

史海拾趣

Bombardier Inc公司的发展小趣事

1976年,庞巴迪公司的航空业务经历了重大变革。其加拿大航空子公司被加拿大政府收购,成为加拿大主要的航空企业。在此期间,庞巴迪在电子系统方面的研发能力得到了进一步提升。公司开始涉足更先进的航空电子技术,如自动驾驶系统、导航系统等,为现代航空业的发展做出了重要贡献。

Datalogic公司的发展小趣事

随着电动汽车行业的兴起,汽车行业对零部件的标记和追踪要求也日益严格。Datalogic凭借其强大的技术实力,成功开发出3W固态激光打标机Vlase UV 3,该产品能够在橙色部件上实现高度可见、稳定和持久的对比度标记,解决了电动汽车生产中的一大难题。这一创新不仅展示了Datalogic的技术实力,也进一步巩固了其在电子行业中的领先地位。

迈翔科技(COILMX)公司的发展小趣事

进入21世纪后,迈翔科技面临了来自国内外同行的激烈竞争。为了保持竞争力,公司投入大量资源进行技术研发和创新。通过不懈努力,公司成功开发出了一系列高性能的贴片功率电感和大电流电感,这些产品凭借卓越的性能和稳定的品质,迅速获得了市场的认可。

Herrmann Kg公司的发展小趣事

近年来,Herrmann Kg积极推进数字化转型,以提升公司的竞争力和市场响应速度。公司任命了具有丰富行业经验的首席数字官(CDO),负责推动集团内部流程的数字化转型。通过数字化整合业务流程,Herrmann Kg简化了与客户之间的沟通方式,优化了工作速度和透明度,同时为全球客户提供了一致的优质体验。这一战略转型不仅提升了公司的运营效率,还为客户创造了更多的附加价值技术的。

Good-Ark公司的发展小趣事
声控报警电路应安装在需要监控的区域附近,并确保声音传感器能够充分接收环境声音。同时,应避免将传感器安装在有强风、机械振动等干扰源的地方。
GMT(致新科技)公司的发展小趣事
设置完成后,选择“确认”或“保存”选项来保存设置。此时,收音机将在指定时间自动开机。

问答坊 | AI 解惑

游逛车展心得

2008北京国际汽车展,这个世界级的汽车盛宴上,各种新车型、新能源、新技术、新概念集中亮相,展现在民众面前的必将是一个新的“竞”界。值得一看; 最便宜的路线: 坐地铁到天通苑站下车。出战有专车开往车展。 不过票价100,很难找到卖50 ...…

查看全部问答>

snapgear udp接收不了广播包

用原始套接字可以抓到包,但是UDP就是接收不了,不知道在哪里被拦截了。…

查看全部问答>

调查:有用MIPS32做过wince的吗?最新的Au1300 serials

做个调查,有用MIPS32做过wince的吗? 5.0或6.0 Au1100serials,Au1200 serials,最新的Au1300 serials 请高手讲讲在启动,地址(memory,virtual ,physical)上和ARM的区别吧?…

查看全部问答>

各位大侠,如何读取硬盘和CPU的序列号啊?急啊,拜托了...

各位大侠,如何读取硬盘和CPU的序列号啊? 我想做一个加密,想到读取硬盘盒CPU的序列号,加上自己的算法。…

查看全部问答>

抢楼抽到的LM3S811评估板收到啦~~~开始上图咯~~~~~~~~

昨天晚上8点整收到电话问我门牌号,今天早上看到帖子说评估板已经寄出了,手机一查10点已经到威海了....不得不说顺丰还真是给力啊....下午收到短信说已经到了,下了课直奔门口,嘿嘿,废话不多说了,先上开箱图——     要打开了, ...…

查看全部问答>

教你计算Buck降压储能电感

如何计算请看下面介绍   如图:输入20-24VDC,输出12V1.8A  频率Fs=250KHZ  计算储能电感值 1.电感最大峰值压降VL=Vinmax-Vo=24V-12V=12V 2.压比Vd=Vo/Vinmax=12V/24V=0.5 3.纹波电流^I=Io*0.3=1.8A*0.3=0.54A 4.储能电感值Lmin=VL*V ...…

查看全部问答>

Quartus开发环境出现的specify a legal end time的问题

Quartus开发环境出现的specify a legal end time的问题 当输入波形时要想改变时间的长短时,总是出现specify a legal end time的现象,添加一个main Time Bar也会有这个提示。解决的方法是在Edit菜单下,有一个End Time菜单,在这里可以修改时间 ...…

查看全部问答>

无意中找到的查SMD代码的 --很好的资料

无意中找到的查SMD代码的 --很好的资料 …

查看全部问答>

编译时遇到“program will not fit into lnk_msp430g2553.cmd“

ccs里c语言编写是老遇到这个错误! 点击进入后转到汇编优势这样的的。 这是怎么回事,是溢出了,可是程序没几行啊,…

查看全部问答>

诚聘PLC、FPGA、matlab、C++、C编程兼职技术(月薪1W+)

正规工作室,因业务量大,在职技术无法供应。现诚聘PLC、FPGA、matlab、C++、C编程兼职技术(有做电路板条件,在校研究生亦可)!有意者联系QQ:740718010,期待与你合作!…

查看全部问答>