学习ARM开发(11)

发布者:清新微笑最新更新时间:2024-11-14 来源: cnblogs关键字:ARM开发  编译  UBOOT 手机看文章 扫描二维码
随时随地手机看文章

由于前几次,把编译好的UBOOT写到FLASH老是运行不了。那么怎么办呢?思考了很久,也查看了源程序,还是没有发现问题。也许那个UBOOT的源程序太大,有很多的编译开关,还有很多驱动程序选择,所以一头雾水,不知怎么办好。到了这个时候,只有从头开始跟踪了。就是尽可能地跟踪程序运行到那里。
因而依次地进行下面的检查:
1. 检查设置的倍频是否对。
2. 检查程序写到FLASH的数据是否对。
3. 检查设置RAM是否对。
4. 检查设置串口的波特率是否对。

一般进行四部份检查就找出大体的问题。我首先查了一下,我的开发板上的晶振是10MHz输入,那么我要倍频到60MHz,所以就要计算它的倍频系数。当然最快的办法,就是用三星提供的PLLSET.EXE工具,五秒钟就搞定了。经过检查,发现我的倍频系数不对,所以重新设置倍频系数。一般设置过倍频系后,都要调整串口波特率、SDRAM的刷新频率。设置好倍频系数后,接着,就要计算串口的波特率,这个三星的S3C44B0的手册有计算公式。比如9600,就是拿60MHz进行分频得到的。

这次设置好后这些东西之后,就把UBOOT编译后,再写到FLASH运行,还是不行。偶都在痛苦中,为什么还不行呢。后来我想想,把UBOOT的编译地址改到0x00000000运行,就是在FLASH运行,不拷贝到SDRAM中运行。结果是可以运行一段,串口有东西输出来,我的设置的LED也可以显示。蜂鸣器也不响。说明这个串口的设置已经对,那么系统的倍频也对了。但UBOOT的堆栈我没有改,所以只能跑到没有使用到堆栈的代码。


接着,我还需要改回到0x0C100000的基地址运行。经过用ADS中的AXD调试,单步跟踪。又是一件痛苦的事情,发现AXD只能单步跟踪,设置断点,或者其它调试都不行,如果在后面设置了断点,选择运行,发现到断点,还停不下来的。


呵呵。。。。。。。调试就是这样的,不是样样都顺手。既然只能单步运行,就老老实实地单步调试了,经过30多分钟的单步运行,F8都已经按得手软。最后才跟踪到出错的地址,发现内存设置不对。主要是SDRAM的设置不对,查看了加载地址的出错了。发现了这个加载地址出错,偶也没有更好的办法解决之前,就只好把算好的值,依次地用ldr加载到r1-r13,共13个寄存器里。接着让AXD全速运行,程序就可运行了。原来出错就是没有把SDRAM的参数加载正确,让我调试了三天。


通过一个多小时的调试,串口可以显示了,UBOOT的很多命令也可运行了。但还没有调通USB口,也没有网络接口。后面的工作,就是先调通网络接口。我的开发板用的网络芯片是RTL8019AS,这个我也没有怎么看过,得好好找点资料,了解了解这个IC,然后找一份LINUX的RTL8019的驱动程序出来看看,再决定怎么样调通RTL8019,由于RTL8019要用到中断,就要先检查S3C44B0设置,否则到最后都没有办法调试。


通过开发板的调试,与SKYEYE相比,主要的区别是在SDRAM的频率,串口的频率,还有中断的功能,都有很大的不同。因此,在SKYEYE上能运行的,在开发板,就不一定可以运行,就是这个原因。

关键字:ARM开发  编译  UBOOT 引用地址:学习ARM开发(11)

上一篇:学习ARM开发(5)
下一篇:学习ARM开发(10)

推荐阅读最新更新时间:2024-11-19 17:24

Busybox编译及其yaffs2文件系制作
一、Busybox编译(版本busybox-1.13.0) 1、在环境变量中设置交叉编译器 的路径(版本cross-4.3.3) 2、 BuildBusybox as a static binary (no shared libs) 3、busybox settings- busybox librarytuning- username completion、fancyshell prompts 4、makemenuconfig设置CROSSCOMPILE为arm-linux- 5、install optin-- Don't use /usr 防止编译后生成的文件安装到主机的/usr目录下,改变了主机的系
[单片机]
S3C2440-裸机篇-02 | 安装和使用arm-linux-gcc交叉编译工具链
1.为什么需要交叉编译工具 宿主机运行的是标准Linux操作系统,编译出的程序却需要在目标机的Linux上跑,这就叫交叉编译,编译器叫做交叉编译器。 之前我们已经使用过gcc编译Linux本地主机的程序(Linux C语言编程(上篇) | gcc的使用),而我们现在需要的这个编译器的目标系统是ARM,不运行操作系统,仅运行裸机程序,需要在Linux主机上编译出可以运行在S3C2440@ARM920T芯片上跑的程序,所以不能使用这个编译器,需要使用arm-linux-gcc交叉编译器。 2.arm-linux-gcc的安装 arm-linux-gcc是ARM官方基于Linux平台的arm编译器,其特点有: 开源免费 支持
[单片机]
S3C2440-裸机篇-02 | 安装和使用<font color='red'>arm</font>-linux-gcc交叉<font color='red'>编译</font>工具链
mini2440开发板移植uboot后norflash环境变量保存
我移植了uboot,讲uboot.bin烧写进了norflash,但是改写了环境变量,使用printenv查看时环境变量改变,但是断电再上电以后环境变量不能保存,使用saveenv命令时不能保存修改的环境变量,出现如下状况 U-Boot 2008.10 (May 1 2012 - 21:01:32) DRAM: 64 MB Flash: 2 MB *** Warning - bad CRC, using default environment In: serial Out: serial Err: serial Mini2440 # printenv bootdelay=3 baudrate=115200 ipa
[单片机]
Synopsys发布Verification Compiler验证编译
美国加利福尼亚州山景城,2014年3月— 亮点: · 包括静态和形式验证的新一代验证技术,使性能提升了5倍 · 将仿真、静态和形式验证,验证IP(VIP)、调试以及覆盖率技术完整地集成到同一个产品中,提高了性能和产能 · 建在易于使用的Verdi3™调试平台上全新的、先进的SoC调试功能提高了调试效率 · 完整的低功耗验证功能,拥有自带的低功耗仿真、X-传递(X-propagation)仿真、新一代低功耗静态校验以及低功耗形式验证 · 将ARM® AMBA® 4 AXI4™和AMBA5 CHI互连、以太网、MIPI、PCIe等等一系列技术的验证IP组合,与仿真和调试功能集成在一起,实现了最高的性能和产能 · 并发
[半导体设计/制造]
基于ARM+DSP进行应用开发
  针对当前应用的复杂性,SOC芯片更好能能满足应用和媒体的需求,集成众多接口,用ARM做为应用处理器进行多样化的应用开发和用户界面和接口,利用DSP进行算法加速,特别是媒体的编解码算法加速,既能够保持算法的灵活性,又能提供强大的处理能力。德州仪器(TI)继第一系列Davinci芯片DM644x之后,又陆续推出了DM643x,DM35x/36x,DM6467,OMAP35x,OMAPLx等一系列ARM+DSP或ARM+视频协处理器的多媒体处理器平台。众多有很强DSP开发经验的工程师,以及应用处理开发经验的工程师都转到使用达芬奇或OMAP平台上开发视频监控、视频会议及便携式多媒体终端等产品。基于ARM+DSP的芯片架构,如何进行开发
[单片机]
Exynos4412交叉编译环境搭建
交叉编译:在PC机(x86平台)上开发程序,在ARM板上运行,提高开发、编译速度。 环境: Tiny4412SDK1506开发板 需要软件: arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz 检测系统是否已经安装有交叉编译环境: # arm-linux-gcc -v bash: arm-linux-gcc: command not found 1. 安装步骤: 1)找到arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz 所在路径,并解压压缩文件 # tar xf arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz # ls arm-
[单片机]
S3C6410使用---7uboot中SD初始化及读写分析
一、uboot中SD卡的初始化 二、读取扇区 三、 写变量到SD卡中 四、 一、uboot中SD卡的初始化 1.1 硬件连线 MMC0_CDN -- GPG6 -- SD卡检测引脚 MMC0_WPN -- GPGL13 -- SD卡写保护引脚 MMC0_DATA -- GPG -- MMC0_CMD -- GPG1 -- SD命令线 MMC0_CLK -- GPG0 -- SDIO/SD卡时钟线 1.2 uboot中初始化过程 uboot lib_arm/board.c中 void start_armboot (void) { #if de
[单片机]
IAR Systems发布支持Freescale ColdFire架构的开发工具
全球领先的嵌入式开发工具供应商IAR Systems,日前发布支持Freescale ColdFire MCU架构的开发工具套件—IAR YellowSuite。嵌入式开发人员可以在基于V1和V2内核的ColdFire系列芯片上使用这套开发工具。IAR Systems还计划在2008年第一季度推出支持Freescale S08 8位芯片的开发套件。 Freescale消费与工业微控制器部门的全球产品经理Jeff Bock说:“IAR YellowSuite for ColdFire为设计者建立基于ColdFire V1和V2内核的嵌入式系统提供了一个强大的开发工具。我们与IAR Systems公司的合作也说明开发人员在使用先进的
[嵌入式]
小广播
设计资源 培训 开发板 精华推荐

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

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

更多每日新闻

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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