历史上的今天
返回首页

历史上的今天

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

正在发生

2020年04月01日 | S5PV210的IRAM应用

2020-04-01 来源:eefocus

准备分析


IRAM的大小96k,其实前两个程序都在这里运行的,程序都小于16K。要实现的是从把IRAM从的前16k从IRAM的起始地址0xD0020000拷贝到0xD0024000 处,调用main。堆栈指针设置到了0xD003_7D80处。程序的链接地址是0xD0024010.用图表示如下。本程序只涉及到IRAM,重点为在于重定向。

  

资源工具


同《 S5PV210的LED应用(一)》


着手写程序


start.S中的代码拷贝很重要,Makefile中的链接地址很重要。


@******************************************************************************

@ File:start.S

@ 功能:启动代码,设置栈,拷贝16k到0xd0020000处

@******************************************************************************  

.text

 

.global _start

 

_start:


ldr sp, =0xD0037D80       @ 设置栈,以便调用c函数


adr r0, _start        @ 重定位

                            @ _start当前所位于的地址:0xd0020010 (前边放有16bit的头信息)


ldr r1, =_start           @ _start的链接地址:0xd0024010


ldr r2, =0xd0028000       @ 0xd0028000 = 0xd0024000 + 0x4000(16k) 

cmp r0, r1

beq run_on_dram


copy_loop:

ldr r0, =0xd0020000       @ 源 起始地址

ldr r1, =0xd0024000       @ 目的 起始地址

1:

ldr r3, [r0], #4          @ 源

str r3, [r1], #4          @ 目的

cmp r1, r2

bne 1b

 


run_on_dram:  

ldr pc, =main             @ 跳转

 

 

halt:

b halt


/******************************************************************************/

/* File:main.c

/* 功能:LED闪烁

/******************************************************************************/ 

 

#define GPJ2CON (*(volatile unsigned long *) 0xE0200280)

#define GPJ2DAT (*(volatile unsigned long *) 0xE0200284)

 

// 延时函数

void delay(unsigned long count)

{

volatile unsigned long i = count;

while (i--)

;

}

 

void main() //LED 闪烁

{

GPJ2CON = 0x00001111; // 配置引脚

while(1) // 闪烁

{

GPJ2DAT = 0; // LED on

delay(0x100000);

GPJ2DAT = 0xf; // LED off

delay(0x100000);

}

}


Makefile:

link.bin: start.o main.o 

arm-linux-ld -Ttext 0xD0024010 -o link.elf $^

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

arm-linux-objdump -D link.elf > link_elf.dis

gcc mkv210_image.c -o mkv210

./mkv210 link.bin 210.bin


%.o : %.S

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


%.o : %.c

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


clean:

rm *.o *.elf *.bin *.dis mkv210 -f


下载运行


 同《 S5PV210的LED应用(一)》


运行调试

       

程序简单,运行正常。


遗留问题

  

1.无

推荐阅读

史海拾趣

贝特莱公司的发展小趣事

贝特莱与小米的合作是其发展历程中的又一重要事件。作为小米全系列合作伙伴,贝特莱为米家智能门锁提供了独家指纹传感器和定制算法芯片。随着米家智能门锁销量突破百万大关,贝特莱也实现了销售上的重大突破。这一合作不仅证明了贝特莱技术的成熟与可靠,也进一步提升了其在智能门锁市场的地位。

Device Engineering Incorporated公司的发展小趣事

随着公司业务的不断发展,DEI公司开始考虑国际化拓展。他们积极寻求与国际知名企业的合作,通过技术交流和共同研发,不断提升自身实力。同时,DEI公司也在全球范围内建立了销售网络,将产品推向了更广阔的市场。这一举措不仅提高了公司的知名度,也为公司带来了可观的收益。

Aptiv公司的发展小趣事

作为一家具有社会责任感的企业,Aptiv始终关注社会公益事业。公司积极参与各项社会活动和慈善捐赠,为改善社会环境和提升公众生活质量做出了积极贡献。同时,Aptiv还注重在运营所在城市推动社区发展,通过创造就业岗位、支持教育事业等方式,为当地社会经济的繁荣做出了贡献。

广东奥科公司的发展小趣事

广东奥科公司在创立之初,面临着资金短缺、技术瓶颈以及市场竞争激烈的困境。然而,公司的创始人凭借对电子行业的深厚理解和对市场需求的敏锐洞察,坚信公司能够在这个领域取得成功。他们带领团队夜以继日地研发新产品,不断优化生产工艺,逐步在市场上打开局面。这段时期,广东奥科公司凭借坚韧不拔的精神和持续的努力,为公司的未来发展奠定了坚实的基础。

Golledge Electronics公司的发展小趣事

广东奥科公司深知品质是企业生存和发展的关键。因此,公司始终将品质管理放在首位,从原材料采购到生产流程控制,再到产品出厂检验,每一个环节都严格把控品质。同时,公司还建立了完善的品质管理体系和持续改进机制,通过不断优化生产工艺和提升产品质量,确保每一款产品都能满足客户的期望和需求。

EIC [EIC discrete Semiconductors]公司的发展小趣事

EIC公司自创立之初,就致力于离散半导体技术的研发与创新。在成立初期,公司面临了技术瓶颈和市场接受度的双重挑战。然而,EIC的研发团队通过不懈努力,成功研发出了一款高性能、低功耗的离散半导体产品,这一技术突破不仅为公司赢得了市场认可,也为后续的产品线扩展奠定了坚实的基础。随着技术的不断进步和产品线的不断丰富,EIC逐渐在电子行业中树立起了自己的品牌形象。

问答坊 | AI 解惑

做F题的加群69079341

本帖最后由 paulhyde 于 2014-9-15 09:04 编辑 大家加啊!  …

查看全部问答>

KEIL C51 消除UNCALLED SEGMENT警告的方法

请教高人得到的答案,共享给大家,去除了警告,看起来舒服多了 第一幅图是在KEIL中的方法 第二幅是在MEDWIN v3中的方法 [ 本帖最后由 soulcoffee 于 2009-9-28 16:26 编辑 ]…

查看全部问答>

Keil 入门实例教程

Keil 入门实例教程…

查看全部问答>

关于MISRA:规则17.4 ,只允许用数组索引做指针运算

规则17.4 只允许用数组索引做指针运算 按照如下方式定义数组和指针: uint8_t a[10]; unit8_t *p; p = a; 则*(p+5) = 0是不允许的,而p[5] = 0 则是允许的,尽管就这段程序而言,二者等价。 以下给出一段程序,读者可参照相应程序行的注释,细 ...…

查看全部问答>

win ce Platform Builder安装问题

win ce Platform Builder5.0与 VS2005 安装在同一台机器有没有冲突,如果有,怎么解决? 谢谢!…

查看全部问答>

请大家推荐VOH<2V的PLL芯片

RT,希望输出VOH小于2V,倍频能力5倍,ICS502很接近了,但是VOH=2.4V,还是不满足要求,请教大家,帮我推荐一歌芯片,谢谢…

查看全部问答>

STM32RTC

void RTC_Configuration(void){  u32 delay;    /* Enable PWR and BKP clocks */  RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Perip ...…

查看全部问答>

求M16与光强传感器TSL2561的程序

求M16与光强传感器TSL2561的程序,产生PWM波驱动LED调光…

查看全部问答>

基于zigbee的环境参数测量模块设计中的几个问题

我最近在做这个东西,遇到几个问题想向大家请教一下。 我用的是msp430f2618单片机。无线通信模块用的是cc2520. 温湿度传感器是sht10,光照传感器是tsl2561. 现在电路原理图已经做好了,开始编程序了。请大家就编程模块给我提一些建议。…

查看全部问答>