ARM9开发之学习过程总结[通俗易懂]

ARM9开发之学习过程总结[通俗易懂]时至今日,与心爱的TQ2440相伴已有一年,从当初的一无所知到今天的得心应手,其间经历的种种,实在难以言表。这里先将我学习ARM中的整个过程总结一下,希望对刚接触的朋友有个提示作用,也希望高手不吝赐教,欢迎拍砖^_^。需要说明的是,这仅仅说是ARM,其间涉及到别的知识也是需要很多时间去学习的,这里我就不列举了。开发板的配套光盘有很多资料文档,在学习之前,大概浏览一下是非常不错的,强烈建议,特别是S3

大家好,又见面了,我是你们的朋友全栈君。

一路摸爬滚打,时至今日,与心爱的TQ2440相伴已有一年,从当初的一无所知到今天的得心应手,其间经历的种种,实在难以言表。想起第一次在串口打出一个字符的时候,那种心情,简直激动得快要爆了,这里先将我学习ARM中的整个过程简单总结一下,以后再详细的针对每个知识点写写东西。希望对刚接触的朋友有个提示作用,也希望高手不吝赐教,给些学习建议,欢迎拍砖^_^。需要说明的是,这仅仅说是ARM,其间涉及到别的知识也是需要很多时间去学习的,这里我就不列举了。

开发板的配套光盘有很多资料文档,在学习之前,大概浏览一下是非常不错的,强烈建议,特别是S3C2440的技术参考手册。
1,熟悉开发板的硬件资源(TQ2440的原理图)
2,熟悉SRAM,SDRAM,Nor Flash,Nand Flash。
3,熟悉内存控制器的初始化,程序要在SDRAM中运行,首先要初始化SDRAM。
4,熟悉ARM920T的启动方式(Nor Flash/Nand Flash)。
5,学会程序下载例程运行(TFTP方式或者USB方式)。
6,搭建开发环境(GCC交差编译)。
7,学习ARMv4指令集,编写简单的汇编程序,下载运行。
8,务必非常熟悉串口UART的使用,后边你自己的程序调试都需要通过串口来输出。
9,学习ARM汇编与C语言的混合编程,GCC内联汇编,掌握参数传递方式和ARM过程调用标准(APCS)即可。
10,到了这一步,基本上就可以用板子上的硬件资源来练习了,LED,按键,IIC接口的EEPROM, LCD等(板子上的蜂鸣器,
LED,串口都可以用来当调试工具,观察它们的现象,判断你的程序执行情况)。
11,现在要学习ARM工作模式,异常处理机制,要非常熟悉中断处理,会编写中断处理程序。
12,自己可以写一个bootloader,写DM9000网卡驱动程序,实现ARP,IP,UDP,TFTP协议,从而用你自己的bootloader实现从服务器下载数据到开发板(我已经实现了一个,大家需要的,可以留言说明,我会联系大家)。
13,当第12步完成后,你可以尝试用你的bootloader从PC的TFTP服务器下载Linux内核镜像到开发板,然后启动Linux。
14,现在可以学习uboot了,就是你的开发板一上电就运行的那个东西,主要是学习移植。
如果你把12,13步完成了或者理解了,那么你也理解uboot了,它和你自己写的bootloader是一样的东西,只不过它功能更强大而已,可以做很多事情。
(但是最主要的就是,获取Linux内核镜像,初始化硬件环境,运行Linux)。
15,此刻,若你依然深爱着ARM920T,那么你可以在上面写一个操作系统(或者称为调度器),使用ARM920T的MMU。再编写或移植一套GUI,实现一个文件系统,实现一个TCP/IP协议栈(只要你想得到的,都可以在上面实现,目前我也在做)。

虽然刚毕业几个月,工作中也没有接触ARM9,但是我有时间就会坚持学习ARM9这款CPU,希望有朝一日,在接触新的ARM处理器时,也能快速入手。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/132772.html原文链接:https://javaforall.net

(0)
上一篇 2022年6月10日 上午11:16
下一篇 2022年6月10日 上午11:36


相关推荐

  • linux ora12154,ORA-12154: TNS:could not resolve the connect identifier specified

    linux ora12154,ORA-12154: TNS:could not resolve the connect identifier specifiedMylistener.orafileisbelowandmyOSisXPPro2002ServicePack2.Myhostnameisict_tjuttelstadandmyPrimaryDNSSuffixisideorlando.org.Ihavetriedseveralitemsforthehostnameentryinm…

    2022年7月19日
    24
  • mysql修改表名

    mysql修改表名ALTER TABLE table_nameRENAMETOnew_table_name

    2022年6月1日
    30
  • java之模糊查询「建议收藏」

    java之模糊查询「建议收藏」1.场景还原由于项目中有很多地方设置了搜索框,所以搜索框之模糊查询势在必得;今晚笔者将详细讲解java之模糊查询的细节及要点,希望能给大伙带来启发。2.实现方案后台代码:①UserInfo实体类的定义publicclassUserInfo{privateStringusername;privateIntegerage;pr

    2022年5月30日
    47
  • 数据库三大范式(重要)

    数据库三大范式(重要)转自微信上周四下午的 VIP 试听课是由芒果给大家介绍的 MySQL 的一些基础知识 在这里芒果给大家分享其中的一部分内容 对数据库三大范式做个小介绍 范式 数据库的设计范式 是符合某一种级别的关系模式的集合 构造数据库必须遵循一定的规则 在关系数据库中 这种规则就是范式 关系数据库中的关系必须满足一定的要求 即满足不同的范式 范式 对于软件的性能 数据库的维护都是我们软件从业人员必须掌握的内容

    2025年6月15日
    5
  • 计算中缀表达式

    计算中缀表达式转载自 https blog csdn net article details 计算中缀表达式 可以称得上是一个特别经典的关于栈的算法题 几乎在所有数据结构教材中都会涉及 而且很多公司面试或者笔试的时候都会把这道题作为一个考察点 可以说 这是一道必须要掌握的算法题 中缀表达式 后缀表达式等概念在这里就不赘述了 让我们直奔主题 题目 输入一个中缀表达式 计

    2026年3月17日
    2
  • 中文分词技术是什么_中文分词技术

    中文分词技术是什么_中文分词技术分词技术就是搜索引擎针对用户提交查询的关键词串进行的查询处理后根据用户的关键词串用各种匹配方法进行的一种技术。当然,我们在进行数据挖掘、精准推荐和自然语言处理工作中也会经常用到中文分词技术。一、为什么

    2022年8月4日
    9

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号