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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • AD域服务器的搭建(1)–AD域介绍

    AD域服务器的搭建(1)–AD域介绍目录服务定义:目录服务就是按照树状存储信息的模式目录服务特点1.目录服务的数据类型主要是字符型,而不是关系数据库提供的整数、浮点数、日期、货币等类型2.为了检索的需要添加了BIN(二进制数据)、CIS(忽略大小写)、CES(大小写敏感)、TEL(电话型)等语法(Syntax)同样也不提供象关系数据库中普遍包含的大量的函数3.目录有很强的查询(读)功能,适合于进行大量数据的检索…

    2022年5月16日
    40
  • clion2021.9.2 激活码_最新在线免费激活

    (clion2021.9.2 激活码)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~1STL5S9V8F-eyJsaWNlbnNlSWQiOi…

    2022年3月27日
    133
  • PhpStorm 2021.5.2 有效激活码(最新序列号破解)

    PhpStorm 2021.5.2 有效激活码(最新序列号破解),https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月17日
    50
  • 朴素贝叶斯分类器_sklearn朴素贝叶斯分类器

    朴素贝叶斯分类器_sklearn朴素贝叶斯分类器所谓分类,就是根据事物的特征(Feature)对其归类(Class)特征的数据特点有两种可能:1.离散/标签2.连续/浮点数(大样本/小样本)下面我们分别来看一、离散/标签这是一个病人

    2022年8月3日
    12
  • arraylist扩容是创建新数组吗 java_arraylist扩容机制要怎么实现?arraylist怎么扩容…「建议收藏」

    arraylist扩容是创建新数组吗 java_arraylist扩容机制要怎么实现?arraylist怎么扩容…「建议收藏」ArrayList大家都知道了吧,这是一个动态数组。以java语言来说,数组是定长的,在被创建之后就不能被加长或缩短了,因此,了解它的扩容机制对使用它尤为重要。下面,我们就一起来看看它的扩容机制是怎么实现的吧。首先我们知道,ArrayList有着三种初始化方式:1)指定大小初始化publicArrayList(intinitialCapacity)2)传入一个Collection对象初始化,并…

    2022年5月11日
    31
  • PLsql注册码一枚

    PLsql注册码一枚plsql7注册码QVJTSV-KNNSSK-G4UUL4-354LGX-FRZ8X3112243.957xs374ca

    2022年7月24日
    8

发表回复

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

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