历史上的今天

今天是:2024年10月11日(星期五)

正在发生

2018年10月11日 | OK6410裸机学习之C语言调用汇编函数

发布者:第二眼帅哥 来源: eefocus关键字:OK6410  裸机  汇编函数 手机看文章 扫描二维码
随时随地手机看文章

start.S源码:

.globl _start

.globl delay       //用globl声明,外部函数就可以调用delay函数

_start:

// 硬件相关的设置 

    // Peri port setup 

    ldr r0, =0x70000000

    orr r0, r0, #0x13

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

    

// 关看门狗 

    // 往WTCON(0x7E004000)写0 

    ldr r0, =0x7E004000

    mov r1, #0

    str r1, [r0]

    // 设置栈 

    ldr sp, =8*1024

    mov r0, #9

    bl xxxxx

halt:

    b halt    

delay:

delay_loop:        

    cmp r0, #0

    sub r0, r0, #1

    bne delay_loop

    mov pc, lr

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

led.c源码:


void delay(int count);    //声明

int xxxxx(int start)

{

    int i = start;

    

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

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

    

    // gpm0,1,2,3设为输出引脚 

    *gpmcon = (*gpmcon & ~0xffff) | 0x1111;

    

    while (1)

    {

        *gpmdat = (*gpmdat & ~0xf) | i;

        i++;

        if (i == 16)

            i = 0;

        delay(0x10000);

    }

    

    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 -O2

led.o : led.c

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

clean:

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


关键字:OK6410  裸机  汇编函数 引用地址:OK6410裸机学习之C语言调用汇编函数

上一篇:OK6410裸机学习之时钟设置-汇编
下一篇:OK6410裸机学习之汇编调用C函数传参数

推荐阅读

4年前,一句“智能家居元年正式开启”的口号,打开了智能家居的风口,众多企业纷纷入场,智能门锁成为企业抢占智能家居的入口。  智能门锁行业人士曾指出,中国目前约有6亿扇大门,一个锁寿命10年左右,每年有超过5000万的锁需更换,比手机行业前景还要广阔。  我国民用智能门锁产业真正进入市场已近20年。截至2018年,智能门锁行业步入市场井喷期,年...
近日,据《纽约时报》援引匿名消息人士透露,美国政府正在计划向一些美国公司颁发特别许可证,允许其向华为等中国企业出售部分产品。另据《华尔街日报》报道,在美中高级官员10月10日举行的贸易谈判之际,这一批准很可能被解读为一种善意之举。美国总统特朗普曾经说过,如果合作不损害美国国家安全,美国公司可以与华为做生意,允许商务部在这种情况下发放...
距离iPhone 12系列发布还有不到一周的时间,相信已经有不少消费者准备将手中的手机更换至最新的iPhone 12。而在发布会前,美国某二手电子交易平台调查了2000多位Android手机用户,结果显示有三成受访者将考虑更换iPhone 12系列。有三成受访者将考虑更换iPhone 12系列根据目前的曝光消息来看,今年苹果将为我们带来四款iPhone 12机型。在四部手机中,i...
在上周,有消息指英伟达明年初推出的GeForce RTX 3090 Ti将采用GA102-350核心,拥有完整的规格,也就是10752个流处理器,配备24GB的GDDR6X显存,速率达到了更高的21 Gbps,采用新款2GB模块替代现有的1GB模块。更让人印象深刻的是高达450W,为此很可能会采用新的16Pin外接电源接口,取代之前的12Pin接口。近日,Igor'sLAB得到了新款供电接口的设计...

史海拾趣

问答坊 | AI 解惑

CAN总线在汽车中应用

80年代以来,随着集成电路和单片机在汽车上的广泛应用,汽车上电子控制单元越来越多,例如电子燃油喷射装置、防抱死制动装置(ABS)、安全气囊装置、电控门窗装置和主动悬架等等。在这种情况下,如果仍采用常规的布线方式,即电线一端与开关相接, ...…

查看全部问答∨

弱问,插入u盘后再开机无法识别u盘的问题

开机后插入u盘能够识别,但是先插u盘再开机在“我的设备”里看不见u盘。我用的是arm 系统是wince5.0 应该怎么解决? 刚查了下但没什么头绪,麻烦大家赐教,详细说下,谢谢!!…

查看全部问答∨

怎样识别串口

我在做一个PDA识别蓝牙串口,EVC编译 和VC差不多的 我用了个CSerialPortEx类 用InitPort(this, i )可以识别出蓝牙串口(PDA是串口8)但是同时也识别出了几个不可用串口, 这我就不明白了 怎么分辨出那个就是蓝牙串口呢?谢谢啦 CSerialPortEx ...…

查看全部问答∨

芯片S3C2440A的问题

端口初始化 //**** PORT B GROUP     //Ports  : GPB10    GPB9    GPB8    GPB7    GPB6     GPB5    GPB4   GPB3   GPB2&nbs ...…

查看全部问答∨

想买块 ARM9 开发板,请给点建议

如题,要求稳定,带屏,最好有技术支持…… 谢谢各位了,请踊跃建言!…

查看全部问答∨

关于IAR FOR AVR编译ATMEGA128A时设置STACK后的报错问题

各位大神有没有遇到这个问题,就是用IAR FOR AVR编译ATMEGA128A程序时必须把STACK设置为0才能通过编译,否则会报错,这是为什么???用ATMEGA16时却没有这个问题,哪位知道啊,求解答,谢谢!!!…

查看全部问答∨

CC2520+MSP430和CC2530

设计无线传感器网络,CC2520+MSP430和CC2530这两种方案的对比?各个的优缺点?求坛里的大神指点指点…

查看全部问答∨

linux-arm开发环境简单配置

关于linux-arm开发环境简单配置是ARM学习的第一步,很多初学者会在这问题上纠结很久都不能配置好开发环境。推荐大家看一下韦东山视频,讲得很详细,代码基本上都会给你解释(很多视频都不会给你解释),适合初学者。 fedora8开发环境简单配置 lin ...…

查看全部问答∨

摸索MSP430FR5739+TMP275

最近用MSP430FR5739来读TMP275直接用MSP430FR573x, MSP430FR572x C Code Examples (IAR and CCS) (Rev. B)\\slac491b\\MSP430FR57xx Code Examples\\C下面的MSP430FR57xx_uscib0_i2c_10.c,可以直接读出温度值不过,是没有对TMP275配置的等完成了再 ...…

查看全部问答∨

平常所用的LCR电桥测量仪的原理

最近想搭建电路测量电容C的值,我看市面上都是什么LCR电桥测量仪, 请问大家,这个LCR电桥测量仪的实现原理是怎样的,怎么得出电容值,电感值和电阻值的。。。 [ 本帖最后由 secondlife110 于 2012-11-16 15:36 编辑 ]…

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

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

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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