历史上的今天

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

正在发生

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

发布者:紫菜包饭 来源: eefocus关键字:OK6410  裸机 手机看文章 扫描二维码
随时随地手机看文章

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


关键字:OK6410  裸机 引用地址:OK6410裸机学习第三天:3th_leds_c

上一篇:OK6410裸机学习第四天:4th_leds_params
下一篇:OK6410裸机学习第二天:2th_leds

推荐阅读

近日,备受瞩目的康力优蓝重磅新品Hello Kitty智能教育机器人宣告上市,基于一贯的产品设计理念,这款机器人不负众望的具备超高颜值,完美继承了原IP的神韵,同时极具科技感,上市伊始便赚足了人气。 可爱暴击 萌趣Hello Kitty惹人爱 这款机器人,是康力优蓝在“强IP战略”指导下,携手日本三丽鸥推出的第一款IP产品。Hello Kitty自1974年问世以...
从51单片机入门,对流水灯有了一定的认识后,就可以进入学习显示类的外设驱动,因为学习时往往需要直接验证、跟踪结果,显示类的外设可以把代码运行情况以非常直观的方式反馈回来。因此,笔者此处首先分析讲解1602字符型液晶的使用。1. 1602字符型液晶概述1602字符型液晶能够同时显示16列2行共32个字符信息。其内部已经存储了不同的点阵字符图形,包括阿...
家庭安全市场在向新消费者介绍智能技术概念方面发挥了重要作用。几十年前,通过可以阻止犯罪的安全系统保护家庭和家庭成为一种公认的概念。但是,当像ADT这样的知名安全品牌开始增加新的智能功能(例如移动应用程序,使客户可以在他们离开家时观看家中发生的事情)时,市场就引入了一种全新的居家安全保护方式。此后不久,规模较小的初创公司开始实施自己...
西门子推出适用于模拟、数字和混合信号 IC 设计的mPower 电源完整性解决方案•西门子推出业界唯一可为任意规模的模拟、数字和混合信号 IC 设计提供电源完整性分析的解决方案,一举进入快速增长的集成电路 (IC) 电源分析市场。•西门子mPower 通过缩短电源完整性的分析周期,帮助 IC 设计人员显著提升产品质量、增强可靠性并加快产品面市速度。西...

史海拾趣

问答坊 | AI 解惑

交流电桥的调平问题

[:$]最近作实验需要自己搭个交流电桥,但很难调平衡,请高手指点一下?…

查看全部问答∨

停电应急照明灯

该装置的电路工作原理见图11。停电是经常性的事情,但有的场合则不允许停电(如正在进行手术等)。用LSE设计的电路简单,实现全自动化。当有220V交流电时,照明灯H1点亮,同时LSE的④脚为高电平输出,三极管VT截止,继电器J处于释放状态,故直流灯H ...…

查看全部问答∨

CPLD的双向端口问题!毕设啊求助!

现在PCI数据线与CPLD相连,有一个功能是测速,首先用LAD0发一个控制信号,然后如入LAD[15..0]的数据。 由于LAD0需要双向,因此将LAD[15..0]都设为Bir(在顶层框图中)但是发现通过LAD0根本写入不了命令,不知为什么? 现在只能LAD0只作输入 其余1 ...…

查看全部问答∨

请教WINCE动态库的问题

为什么PB编译的动态库通常要比EVC编译的动态库小一点呢?…

查看全部问答∨

wince5.0中如何捕捉鼠标位置,实现全屏书写,实时显示书写的轨迹?

wince5.0中如何捕捉鼠标位置,实现全屏书写,实时显示书写的轨迹?在自己建立的窗口中已经可以书写,显示轨迹了。但是出来自己创建的窗口就没办法书写了。困恼了很久了,高手、专家指点啊。最好能给点实例代码参考 邮箱echenxi@163.com  …

查看全部问答∨

有没有人用过430读写sd卡呀?

不知道各位大虾有没有关于430读写sd卡方面的资料?小弟拜求了! Email:zwiceman@hotmail.com…

查看全部问答∨

求助!电压比较器使用中的常见问题

当比较器输入信号幅度过高的时候,输出方波会有一个上冲,输入信号幅度越大,上冲越厉害,曾经尝试过在输入与地之间加二极管钳位,但是效果不理想,求各位大牛的帮助…

查看全部问答∨

请教关于市电220V检测电路

最近朋友让我给他弄一个市电检测电路,用在工业上的,要求在市电200V以上的时候输出一个脉冲,并且脉冲宽度在有限的时间内可调,各位大虾有没有做过类似电路的?望指点一二。以下是我个人设计的电路,在我个人的系统中测试的结果还算理想,经过几天 ...…

查看全部问答∨

FPGA控制W5300

有没有大神做过这个项目呀,手头没什么资料,不知道从何下手。…

查看全部问答∨

三轴加速度传感器mma8452怎么与51单片机还有电源接线?

三轴加速度传感器mma8452怎么与51单片机还有电源接线?各接口间怎么用线连接?最好能画个图演示一下!…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

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

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

更多往期活动

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved