以下是jz2440的head.s文件,在FL2440可以使用,不做更改.注意这是NANDFLASH启动方式,FL2440开发板上的J5和J2都要插上.
@*************************************************************************
@ File:head.S
@ 功能:设置SDRAM,将程序复制到SDRAM,然后跳到SDRAM继续执行
@*************************************************************************
.equ MEM_CTL_BASE, 0x48000000
.equ SDRAM_BASE, 0x30000000
.text
.global _start
_start:
bl disable_watch_dog @ 关闭WATCHDOG,否则CPU会不断重启
bl memsetup @ 设置存储控制器
bl copy_steppingstone_to_sdram @ 复制代码到SDRAM中
ldr pc, =on_sdram @ 跳到SDRAM中继续执行
on_sdram:
ldr sp, =0x34000000 @ 设置堆栈,64M内存
bl main
halt_loop:
b halt_loop
disable_watch_dog:
@ 往WATCHDOG寄存器写0即可
mov r1, #0x53000000
mov r2, #0x0
str r2, [r1] @将r2寄存器的值写到r1寄存值对应的地址单元
mov pc, lr @// 返回,用bl跳转会把返回地址(bl的下一条指令的地址)保存在lr寄存中
copy_steppingstone_to_sdram:
@ 将Steppingstone的4K数据全部复制到SDRAM中去
@ Steppingstone起始地址为0x00000000,SDRAM中起始地址为0x30000000
mov r1, #0
ldr r2, =SDRAM_BASE @第二参数有"="表示伪指令,r2为读SDRAM_BASE的地址
mov r3, #4*1024
1:
ldr r4, [r1],#4 @ 从Steppingstone读取4字节的数据,并让源地址加4
@ //将r1寄存器的值做为地址取的的数据存到r4中,并且r1寄存器的值+4
str r4, [r2],#4 @ 将此4字节的数据复制到SDRAM中,并让目地地址加4
@ //将r4的数据保存到地址为r2寄存器值,并且r2寄存器的值+4
cmp r1, r3 @ 判断是否完成:源地址等于Steppingstone的未地址?
bne 1b @ 若没有复制完,继续 跳到上个段开始,1的位置 b:back 1表示第一个1标号处
mov pc, lr @ 返回
memsetup:
@ 设置存储控制器以便使用SDRAM等外设
mov r1, #MEM_CTL_BASE @ 存储控制器的13个寄存器的开始地址
adrl r2, mem_cfg_val @ 这13个值的起始存储地址
@ adrl 这是一条中等范围的地址读取伪指令,它将基于PC的相对偏移的地址值读到目标寄存器中。
@
add r3, r1, #52 @ 13*4 = 54 r3=r1+52 =0x48000000 +#52 0x48000034
1:
ldr r4, [r2], #4 @ 读取设置值,并让r2加4
str r4, [r1], #4 @ 将此值写入寄存器,并让r1加4
cmp r1, r3 @ 判断是否设置完所有13个寄存器
bne 1b @ 若没有写成,继续
mov pc, lr @ 返回
.align 4
mem_cfg_val:
@ 存储控制器13个寄存器的设置值
.long 0x22011110 @ BWSCON
.long 0x00000700 @ BANKCON0
.long 0x00000700 @ BANKCON1
.long 0x00000700 @ BANKCON2
.long 0x00000700 @ BANKCON3
.long 0x00000700 @ BANKCON4
.long 0x00000700 @ BANKCON5
.long 0x00018005 @ BANKCON6
.long 0x00018005 @ BANKCON7
.long 0x008C07A3 @ REFRESH
.long 0x000000B1 @ BANKSIZE
.long 0x00000030 @ MRSRB6
.long 0x00000030 @ MRSRB7
我的FL2440开发板的SDRAM是两片 H57V2562GTR-75C 最高主频133,16M*16。
下面是makefile文件,没有改变还是jz2440的.
sdram.bin : head.S leds.c
arm-linux-gcc -c -o head.o head.S
arm-linux-gcc -c -o leds.o leds.c
arm-linux-ld -Ttext 0x30000000 head.o leds.o -o sdram_elf
arm-linux-objcopy -O binary -S sdram_elf sdram.bin
arm-linux-objdump -D -m arm sdram_elf > sdram.dis
clean:
rm -f sdram.dis sdram.bin sdram_elf *.o
下面是leds.c文件,要对应FL2440的原理图.
//FL2440
#define GPBCON (*(volatile unsigned long *)0x56000010)
#define GPBDAT (*(volatile unsigned long *)0x56000014)
#define GPB5_out (1<<(5*2))
#define GPB6_out (1<<(6*2))
#define GPB8_out (1<<(8*2))
#define GPB10_out (1<<(10*2))
void wait(volatile unsigned long dly)
{
for(; dly > 0; dly--);
}
int main(void)
{
unsigned long i=0;
// 0010 0000
// 0100 0000
// 1 0000 0000
// 100 0000 0000
unsigned long arr[4]={0x20,0x40,0x100,0x400};
GPBCON = GPB5_out|GPB6_out|GPB8_out|GPB10_out; // 将LED0-3对应的GPB 5/6/8/10 output
while(1)
{
for(i=0;i<4;i++)
{
//GPBDAT=0x7ff;
//wait(90000);
GPBDAT=~arr[i];
wait(90000);
}
}
return 0;
}
编译环境用的是ubuntu9.10,直接用韦老师的虚拟机文件。
上一篇:FL2440(3) 裸板程序
下一篇:FL2440 (1) 裸板程序 LED
推荐阅读
史海拾趣
由于“BESTECH”并非一个我所熟知的特定电子行业公司,因此我无法提供关于该公司具体发展故事的详细信息。此外,每个公司的发展都涉及到许多复杂的事件和因素,包括市场变化、技术革新、竞争态势、管理决策等,因此,撰写五个关于该公司发展的故事将需要详尽的研究和深入了解。
不过,我可以为您提供一个电子行业公司可能经历的一般性发展故事的框架,您可以根据这个框架来进一步了解或研究“BESTECH”或其他电子行业公司的发展历程。
电子行业公司一般性发展故事框架:
- 创业初期与技术创新:
- 描述公司创始人的背景和对电子行业的热情。
- 讲述公司如何从一个创业想法开始,通过技术创新解决某个行业痛点或满足市场需求。
- 强调早期产品的独特性和市场接受度。
- 市场扩张与品牌建设:
- 描述公司如何逐渐扩大市场份额,可能包括进入新的地域市场或拓展产品线。
- 讲述公司在品牌建设方面的努力和成果,如参加行业展会、获得奖项等。
- 分析公司在市场竞争中的优势和策略。
- 技术升级与研发投入:
- 强调公司如何紧跟行业技术发展趋势,不断升级产品和技术。
- 描述公司在研发方面的投入和取得的成果,如专利申请、新产品发布等。
- 分析技术升级对公司市场竞争力的影响。
- 合作与战略联盟:
- 讲述公司如何与其他企业、研究机构或高校建立合作关系,共同推进技术创新和市场拓展。
- 分析这些合作对公司发展的战略意义和价值。
- 描述合作带来的具体成果和效益。
- 企业文化与社会责任:
- 强调公司在企业文化建设方面的努力和特色,如员工培训、激励机制等。
- 讲述公司如何履行社会责任,如环保措施、公益活动等。
- 分析企业文化和社会责任对公司长远发展的重要性。
请注意,这只是一个框架性的描述,具体的故事内容需要根据“BESTECH”或其他电子行业公司的实际情况来填充。如果您对“BESTECH”有特定的了解或需求,建议您查阅相关资料、公司年报或行业报告,以获取更准确和详细的信息。
自成立以来,博流公司一直致力于物联网、车联网和智能穿戴领域集成电路芯片的研发。经过不断的技术创新和突破,公司成功推出了多款具有竞争力的芯片产品,广泛应用于智能家居、智慧城市、智能制造等领域。同时,博流还注重与物联网生态合作伙伴的紧密合作,共同提供端到端、边缘计算到云的整体解决方案,为客户创造价值。
在电子行业的发展历程中,技术突破一直是推动公司成长和市场扩张的关键因素。假设ATC在某一时期成功研发出了一种新型的陶瓷材料,这种材料在耐高温、抗腐蚀等方面具有显著优势,因此被广泛应用于半导体制造和电子设备领域。这一技术突破使得ATC的产品在市场上获得了极高的认可,公司也因此实现了快速的收入增长和市场占有率的提升。
百蓉公司不满足于仅在国内市场发展,开始积极拓展国际市场。他们参加了多个国际电子展览,与多家国际知名企业建立了合作关系。通过深入了解不同国家和地区的市场需求,百蓉针对性地推出了符合当地消费者需求的产品,逐渐在国际市场上占据了一席之地。
进入21世纪后,Harris公司经历了重要的战略转型。2019年,Harris与L3 Technologies合并成立了L3Harris Technologies。这次合并旨在通过整合两家公司的技术、资源和市场优势,打造一家综合性的国防和信息技术公司。合并后的L3Harris在通信系统、雷达系统、太空和导航系统等多个领域均取得了显著进展,进一步提升了其在电子行业中的竞争力。
大家好,我是上海KT人才的dolphin 我们公司中国最大最专业的集成电路人才咨询公司之一,多年来专注于IC与电子行业中高级人才服务,客户主要为欧美著名半导体公司和美资集成电路设计新公司,客户分布在上海、北京、深圳、新加坡等地,拥有丰富的IC ...… 查看全部问答∨ |
|
这款属于RS08系列8位单片机,低成本,适合家用电器控制板,遥控器之类的应用。网上找到的中文凡一般手册,转过来。真的要感谢这些无私奉献的人,国内还是很多人不会看英文的资料的。有人翻译确实方便了不少人。但我仍然强调,做技术就一定要过英文 ...… 查看全部问答∨ |
(急急急)ads下怎么才能使用malloc、free函数??在线等!!(无OS情况下) 急急急急急急!!! ads下怎么才能使用malloc、free函数???在无OS情况下。。。。。 请高手指点!! … 查看全部问答∨ |
我们想实现这样的效果:关闭屏幕显示(不是仅仅关背景灯),我用下面做法能够实现 ... HDC gdc; int iESC=SETPOWERMANAGEMENT; gdc = ::GetDC(NULL); &nbs ...… 查看全部问答∨ |
现在鼠标,移动硬盘,键盘都是用USB口了,那计算机如何知道插进去的是鼠标,移动硬盘,和USB键盘呢? 还有就是是不是USB接口的外设都不需要驱动呢?(在XP 2000环境下)?… 查看全部问答∨ |
如何让用Labview 8.2下编的程序在WinCE 5.0里运行? 已装evc,Labview 8.2及其PDA模块,windows mobil pocket pc 2005 SDK,vs2005等等。 硬件为MOXA的UC7408,操作系统为WinCE 5.0. 在线等,谢谢!… 查看全部问答∨ |
|
奇怪,DK-LM3S9B96在KEIL不能仿真,但能下载,是什么原因呢? KEIL用V3和V4,都是一样,只能下载不能仿真。仿真时,会提示xxx.axf不能加载。另外,工程是用开发板自带的例程。手上还有一个LM3S8962 EVKIT,在KEIL里面又可以下载,又可以仿真的… 查看全部问答∨ |