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处理器时,也能快速入手。

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 用fread函数或fwrite函数读写的文件必须是_FCGI_fwrite

    用fread函数或fwrite函数读写的文件必须是_FCGI_fwritefwrite和fread是以记录为单位的I/O函数,fread和fwrite函数一般用于二进制文件的输入输出。#includesize_tfread(void*ptr,size_tsize,size_tnmemb,FILE*stream);size_tfwrite(constvoid*ptr,size_tsize,size_tnmemb,FILE*s

  • dtu连接mysql_Azure SQL 数据库中的DTU和eDTU是什么

    dtu连接mysql_Azure SQL 数据库中的DTU和eDTU是什么AzureSQL数据库中的DTU和eDTU是什么03/07/20177分钟可看完本文内容MaxShen沈云技术解决方案专家AzureSQL使用了数据库事务单位(DTU)和弹性数据库事务单位(eDTU)来作为一个计量单位。但是DTU和eDTU究竟是什么?在官方文档中是这样解释的:DTU是一个资源度量单位,表示保证可用于单一数据库服务层内特定性能级别的单个AzureSQL…

    2022年10月31日
  • 基因的可变剪切_如何确认发现了可变剪切

    基因的可变剪切_如何确认发现了可变剪切什么是基因的可变剪切?有些基因的前体mRNA(pre-mRNA)通过不同的剪接方式(选择不同的剪接位点)产生不同的mRNA剪接异构体,这一过程称为可变剪接(或者选择性剪切)(AlternativeS

  • datagrip最新激活码【在线破解激活】

    datagrip最新激活码【在线破解激活】,https://javaforall.cn/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

  • PKI体系标准_三体系

    PKI体系标准_三体系转自CSDN.在PKI体系中涉及到四类标准,下面做个简单介绍。1.asn.1基本编码规范Asn.1是描述在网络上传输信息格式的标准方法。它有两个部分:第一部分(X.208)描述信息内的数据、数据类型及序列格式,也就是数据的语法;第二部分(X.209)描述如何将各部分数据组成消息,也就是数据的基本编码规则(DER编码)。Asn.1原来是作为X.409的一部分而开发的,后来独立发展

  • 图像的拼接—-RANSAC算法

    图像的拼接—-RANSAC算法一、全景拼接的原理1.RANSAC算法介绍RANSAC算法的基本假设是样本中包含正确数据(inliers,可以被模型描述的数据),也包含异常数据(outliers,偏离正常范围很远、无法适应数学模

发表回复

您的电子邮箱地址不会被公开。

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