由于调试耗费了我太多时间,所以记录下来,方便以后复习,同时也希望能给初学者一点儿启示,大家少走弯路。 我是去年开始听说ARM的,可能是本人太闭塞了吧。看到后就有一种想玩的冲动,想从51升级ARM。网上都说44B0比较适合初学者。机缘巧合,21ic上看到有人叫卖44B0空板,很便宜100RMB,主板加简易JTAG小板。做研发的都穷啊。还不错,钱汇过去,板子第3天就回来了,就是网上流行的那个44B0 PCB。贴个图吧,随便找了块和我那块板子一模一样的: ### S3C44B0调试笔记——BIOS部分 #### 一、引言与背景 S3C44B0是一款由Samsung公司推出的ARM7TDMI内核微处理器,适用于嵌入式系统开发。本篇文章主要围绕S3C44B0的BIOS调试过程进行总结与分享,旨在为初次接触ARM平台的学习者提供一些实用的经验教训,避免在实际操作过程中重复相同的错误路径。通过本文档,读者将能够了解到S3C44B0调试过程中的一些常见问题及解决方法。 #### 二、硬件准备与初步调试 1. **硬件配置**:介绍作者选择的S3C44B0开发板的基本配置。开发板包含以下关键组件: - CPU:S3C44B0 - 内存:SDRAM - 存储:FLASH(初始配置为AM29LV160,后更换为SST39VF160) - JTAG接口:用于调试 - UART接口:用于串口通信 - 网络接口:支持以太网连接 2. **硬件组装与测试**:作者在收到空板后,根据提供的物料清单(BOM)自行组装。在完成初步组装后,对电源电路进行了检查,确保电路正确连接且无短路现象,然后进行了上电测试。这一阶段主要是验证硬件的基本功能。 #### 三、BIOS烧录与问题排查 1. **BIOS烧录工具**:作者使用了FLUTED软件进行BIOS程序的烧录。在初次尝试烧录时遇到了失败,这可能是由于硬件问题(如虚焊)、软件设置不正确或是BIOS与硬件不兼容等原因引起的。 2. **问题排查**:在发现BIOS烧录失败后,作者采取了一系列排查措施: - 检查焊接质量:重新焊接以确保所有元件正确安装。 - 检查JTAG接口:排除接口故障的可能性。 - 验证BIOS设置:确认并口设置无误。 - 查阅文档与资料:最终发现BOM中的错误信息,即使用的FLASH型号与提供的BIOS不匹配。 3. **解决问题**:通过替换正确的FLASH型号(SST39VF160),并对BIOS的FCD文件进行相应修改,最终实现了BIOS的成功烧录。这一步骤至关重要,因为它确保了硬件与软件之间的兼容性。 #### 四、BIOS运行与网络测试 1. **BIOS运行测试**:成功烧录BIOS后,作者通过串口连接并在超级终端中观察到了BIOS的启动信息,证明了BIOS已成功运行。此外,还尝试了一些BIOS命令,进一步验证了BIOS的功能。 2. **网络功能测试**:接下来,作者测试了网络功能。通过简单的命令如ping命令,确认了网络连接的可用性,这表明硬件的网络部分也工作正常。 #### 五、uClinux下载与问题分析 1. **uClinux下载失败问题**:在尝试从0地址拷贝uClinux到0x1f0000地址时,出现了程序复位的问题。这一问题可能与BIOS内部程序在处理FLASH擦写操作时的兼容性有关。 2. **问题分析**:作者深入研究了BIOS源码中的擦写操作逻辑,并注意到在进行擦写操作时,如果CPU试图访问正在被擦写的区域,则可能导致程序异常。这是由于擦写过程中读取的数据不是有效数据,而是擦写状态标志。 3. **解决方案探索**:为了解决这个问题,作者考虑了几种可能的解决方案: - 将BIOS从FLASH复制到SDRAM中运行,以避免擦写操作对程序运行的影响。 - 修改BIOS源码,优化擦写逻辑,使其更加健壮。 #### 六、结论与思考 通过本文档的介绍,我们可以看出,对于S3C44B0开发板的BIOS调试是一项复杂而细致的工作,需要开发者具备扎实的技术基础和耐心细致的态度。在调试过程中,遇到问题时的排查思路和方法尤为重要。此外,对于硬件与软件兼容性问题的理解,以及如何针对具体问题进行针对性调整,也是开发者需要不断积累的经验。 本文档希望给未来的开发者提供有价值的参考,减少他们在调试过程中的困扰,同时也鼓励更多人参与到嵌入式系统的开发中来,共同推动技术的进步和发展。
剩余8页未读,继续阅读
- 粉丝: 306
- 资源: 64
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助