程序编写
本次实验将实现初始化SDRAM并将程序自身复制到SDRAM中然后跳转至SDRAM中继续执行流水灯。
依然是在上次程序的基础上进行修改,本次需要修改的文件包括”start.S”和”Makefile”,修改后的文件内容如下:
/* start.S */
.text
.global _start
_start:
#define MDIV 0x7f << 12
#define PSDIV 0x21
ldr r0, =0x53000000
mov r1, #0x00
str r1, [r0] /* disable the watchdog timer */
bl mpll_setup
bl mem_setup
bl relocate
ldr pc, =on_sdram
on_sdram:
ldr sp, =0x34000000 /* set stack pointer */
b main
relocate:
ldr r0, =0x30000000
ldr r1, =0x40000000
add r2, r0, #1024*4
1:
ldr r3, [r1], #4
str r3, [r0], #4
cmp r2, r0
bne 1b
mov pc, lr
mpll_setup:
ldr r0, =0x4c000000
mov r1, #0xffffffff
str r1, [r0] /* set locktime register */
ldr r0, =0x4c000014
mov r1, #5
str r1, [r0] /* set CLKDIVN register */
mrc p15, 0, r1, c1, c0, 0
orr r1, r1, #0xc0000000
mcr p15, 0, r1, c1, c0, 0 /* change bus mode */
ldr r0, =0x4c000004
mov r1, #MDIV
add r1, r1,#PSDIV
str r1, [r0] /* set MPLLCON register */
mov pc, lr
mem_setup:
ldr r0, =0x48000000
adr r1, mem_cfg_val
add r2, r0, #13*4
1:
ldr r3, [r1], #4
str r3, [r0], #4
cmp r2, r0
bne 1b
mov pc, lr
.align 4
mem_cfg_val:
.word 0x22000000 /* BWSCON */
.word 0x00000700 /* BANKCON0 */
.word 0x00000700 /* BANKCON1 */
.word 0x00000700 /* BANKCON2 */
.word 0x00000700 /* BANKCON3 */
.word 0x00000700 /* BANKCON4 */
.word 0x00000700 /* BANKCON5 */
.word 0x00018005 /* BANKCON6 */
.word 0x00018005 /* BANKCON7 */
.word 0x008C04F5 /* REFRESH */
.word 0x000000B1 /* BANKSIZE */
.word 0x00000030 /* MRSRB6 */
.word 0x00000030 /* MRSRB7 */
@Makefile
objs := start.o led.o
led.bin:$(objs)
arm-linux-ld -Ttext 0x30000000 -o led_elf $^
arm-linux-objcopy -O binary -S led_elf $@
arm-linux-objdump -D -m arm led_elf > led.dis
%.o:%.c
arm-linux-gcc -c -o $@ $<
%.o:%.S
arm-linux-gcc -c -o $@ $<
clean:
rm -f led_elf *.o
为了使程序更加直观,在”start.S”中采用标号将程序进行了分段。
和之前的Makefile进行比较可以发现链接地址由原来的0x40000000变为了0x30000000。
修改完成编译后,仍然使用JLINK将程序下载至内部SRAM(0x40000000)处执行,可以看到流水灯仍正常执行,说明SDRAM控制寄存器初始化成功且程序搬移成功。
有关程序跳转至SDRAM执行的原理可参考《嵌入式应用开发完全指南》或者自行搜索”位置无关代码”以及”装载地址和运行地址”。
上一篇:MINI2440 MPLL
下一篇:最后一页
推荐阅读
史海拾趣
成为Garmin全资子公司后,Dynastream并没有停止前进的步伐。相反,公司更加注重技术创新和产品研发。在保持传统优势产品的基础上,Dynastream不断推出新产品、新技术,以满足市场的不断变化和客户的多样化需求。同时,公司还积极拓展国际市场,将产品销往全球各地。
为了提高生产效率与产品质量,国光新业积极引进并自主研发高效自动化生产线。公司投产了行业首条高效聚合物自动化生产线,并在此基础上不断进行技改迭代。这些生产线的建立,不仅大幅减少了人力成本,还显著提升了产品的生产效率与一致性。目前,公司正进行第三条全国产化技改技术攻关,旨在进一步提升生产线的智能化与自动化水平。
面对日益严峻的环境问题,Emerson Embedded Power积极响应,将环保理念融入产品设计和生产过程中。该公司致力于开发节能、低碳的电源产品,帮助客户降低能源消耗和碳排放。同时,公司还积极推广绿色制造理念,推动整个电子行业的可持续发展。
在追求经济效益的同时,BVLED公司也积极履行社会责任,致力于推动可持续发展。公司注重环保和节能技术的研发和应用,推出了一系列环保型LED产品;同时,公司还积极参与公益事业和慈善活动,为社会做出贡献。这些举措不仅提升了公司的社会形象,也为公司的长远发展奠定了坚实的基础。
请注意,以上仅为一个框架性的描述,并未涉及具体的公司名称、时间、地点等细节。你可以根据这个框架进行进一步的创作和补充,以形成完整的故事。同时,由于每个公司的发展轨迹都有其独特之处,你也可以结合你对电子行业LED公司的了解和观察,来创作出更具真实感和说服力的故事。
尽管AVAGO公司在发展过程中取得了显著成就,但也面临着诸多挑战。随着全球半导体市场的竞争日益激烈,公司需要不断投入研发资金、加强人才培养、优化生产流程等方面来保持竞争优势。同时,公司还需要密切关注行业动态和市场需求变化,以便及时调整战略和产品线。在未来,AVAGO公司将继续致力于技术创新和市场拓展,为全球客户提供更优质的产品和服务。
以上五个故事仅是对AVAGO公司发展历程的简要描述,实际上公司在发展过程中还经历了许多其他重要事件和阶段。这些故事展示了AVAGO公司如何凭借技术实力、市场洞察力和战略眼光在电子行业中脱颖而出,并成为全球领先的半导体企业之一。
面对物联网行业的快速发展和变化,乐鑫科技始终保持前瞻性的战略眼光。公司积极布局未来市场,加大在人工智能、云计算等领域的研发投入,以满足客户对更智能化、更高效的物联网应用的需求。同时,乐鑫科技还注重培养和引进优秀人才,为公司未来的发展提供有力的人才保障。
请注意,以上内容仅为概述性质的故事框架,具体细节和数据可能需要根据实际情况进行调整和补充。
老师是这么教我们单片机的(转) 看到不少网友都在问怎样提高自己的能力,我在这里想谈一下我自己当年的学习过程。 我学的是计算机系的通讯工程专业,主要的发展方向是做计算机网络偏软件这一块,这点从我的毕业设计课题《宾馆客房管理系统》就能看 ...… 查看全部问答∨ |
一种是固执己见的人,原因就不用讲了。另一种是唯命是从的人,因为老板从你这里不会得到任何启发。在这两点中取得平衡也很不容易呢,一方面要让老板觉得很有想法,另一方面还要让老板感到你不会给他对着干。 哈,可有得学呢。… 查看全部问答∨ |
本人有多年蓝牙项目经验,对蓝牙产品发展,市场运作和开拓,有一套成熟的思路和方法,如有公司或个人打算开发蓝牙产品,可以与我联系,(出售各种蓝牙模块,开发板,外包项目) 邮箱:bt_sw@163.com 电话:0755-29566295 / 13728917520 ...… 查看全部问答∨ |