打印

分享一个妹子录制的ARM11裸机环境搭建与程序调试详解视频

[复制链接]
4336|33
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
llck|  楼主 | 2013-4-3 15:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先说明一下,我只是一个嵌入式的新手,之前在学校的时候只学过简单的51单片机、基础的C语言和数电模电。上课的时候听老师说过嵌入式,但对这个词没有什么概念,也不知道学嵌入式能干什么。虽然自己在网上看了很多关于嵌入式学习的帖子,但还是一知半解,不知该从何入手。那种茫然的感觉真挺郁闷的--!
  快毕业了,有幸来到一家从事嵌入式产品设计的公司实习。在师傅的带领下开始接触基础的嵌入式开发。一个星期的岗前培训给我最大的感觉是:有人带比自己学快很多。也正是这个想法,让我打算通过日志记录自己每天的收获和感悟,分享给大家。希望能够通过这种形式和正在学嵌入式的朋友们互相交流,也真心希望能够得到行业内前辈们的指导。
  PS:由于个人能力暂时比较有限,在这里不敢妄谈经验。不过帖子里每一步都是我亲自操作完成的,如果帖子描述的不是很详细,大家可以看一下操作视频。希望通过图文+视频的方式,将实现过程更清晰的呈现给大家,也希望各位前辈在闲暇之余能指点一下,这里先谢过了~(*^__^*) 嘻嘻……
  
  先上视频了
  第一次录的没经验,分辨率设置低了,上传优酷之后变得有点儿模糊,所以下面也给出了网盘地址,里面是视频源文件,70M左右

    优酷版视频点击此处观看:v.youku.com/v_show/id_XNTM2NjY3MDg4.html

       视频源文件网盘版下载地址:dl.vmall.com/c0v5iubcin

  PS:等到视频录制结束之后再听才发现和之前的初衷差别蛮大的,尤其是开场白,这是后来加上的,感觉还不如不加呢o(╯□╰)o原本希望用一种轻松的语气和讨论的方式和大家交流,结果听起来很像是说教,过于正式和严肃了。第一次录制视频,心情比较复杂和忐忑,语言表达的也很不自然...希望在今后的视频中可以带给大家一种更加轻松的感觉。学习不一定是痛苦的,交流不一定是严肃的,简单一些,或许更自然。
  
第一期内容是最基础的无操作系统下基于ARM处理器流水灯的实现。
开发环境:WinXP
软件工具:RVDS2.2下的CodeWarrior、AXD,至于RVDS2.2软件,只要从网上下载并安装到自己的计算机上就可以了
硬件平台:ARM11 S3C6410处理器、J-LINK V8(使用前要安装相应的驱动哦~)

    在这里想先和大家分享一个小感悟,这两天才发现的:
就以这个流水灯实现为例,之前在学校老师讲流水灯的实现用了6节课,而且听完了还不是很清楚。原因在于老师会先讲什么是寄存器,什么是寻址,然后是汇编的各个指令...其实这些内容里面和流水灯实现关联都不够紧密,听的很多,可没什么重点。如果从目标出发来看这个问题我觉得会更清晰。

    流水灯为什么会亮->LED发光->LED为什么会发光->LED两端有了高低压差->LED两端为什么会有压差->电路连接一段是高电平另一端是ARM的某个管脚->只要ARM管脚输出低电平LED就会亮->ARM管脚如何输出低电平/哪个管脚输出低电平?

这样一想思路就清楚了。流水灯的实现也就很简单了:
1.查看原理图,找到连接LED的ARM管脚
2.查看ARM手册,找到这个管脚的位置及控制方法(寄存器)
3.使用某个软件(这里使用的是ADS)编写一个控制该寄存器程序
4.通过工具(JLINK)连接PC和处理器平台,把编写好的程序从PC机下载到处理器平台运行。
  这是自己这几天实习的小感悟,换一种思路学习,或许会事半功倍,希望能给初学者朋友一些启发。

  接下来是流水灯在ARM11处理器实现的具体内容:

  首先是原理图和寄存器介绍:

       这个呢,就是led的原理图,这里就可以明白的看到led是如何点亮的。VDD33V代表高电平,只要NLED3输出为低电平就可以点亮LED灯了。

       这就是管脚的连接方式,这样就可以找到控制led的寄存器。方块里面的代表了ARM处理器的相关引脚和功能。
   


       这三张截图向我们介绍了控制led灯的寄存器的概况

  这时在RVDS2.2中创建一个工程,用到的软件就是CodeWarrior

       这张图显示了在所建的工程中添加一个文本文件用来编写实现代码

  代码写好之后,我们需要配置一下Release中的对应选项

    配置图2

       配置图3

       配置图4

       配置图5

        
       在调试之前呢,我们需要添加相应的JLINK动态库

  这张图中可以大致地看出JLINK的连接方式,连接比较简单,线都是防误插的,只要都连上就可以喽~

      最后我在这里把视频中的代码也贴上来,希望朋友们可以用到:
  
  Main.c
  #define rGPMCON          (*(volatile unsigned *)(0x7F008820))
  #define rGPMDAT          (*(volatile unsigned *)(0x7F008824))
  #define rGPMPUD          (*(volatile unsigned *)(0x7F008828))
  void msDelay(int time)
  {
              volatile unsigned int i,j;
              for(i = 0; i < 2000000; i++)
                      for(j=0; j<time; j++);
  }
  void GPIO_Init(void)
  {
          rGPMCON  = 0x11111;//初始化控制寄存器,使每一个寄存器处于output状态
      rGPMDAT  = 0X1F;//初始化控制寄存器,使每一个灯都灭着
  }
  void LedTest(void)
  {
          volatile unsigned int i;
          while (1)
          {
                  for(i=0; i<4; i++)
                  {
                          rGPMDAT  = ~(1<<i);//用位操作控制灯的循环点亮
                          msDelay(10);//延时10ms
                  }
  
          }
  }
  void Main(void)
  {
          GPIO_Init();
          LedTest();
  }
  
  Init.s
     
  IMPORT      Main
          AREA |C$$code|, CODE, READONLY
          global                start
  start                           
      bl        Main
      END

  裸机的相关知识比较少,这期就差不多讲完了。下期开始主要是Linux的相关内容,大家要是有什么想了解的知识点可以在帖子里面告诉我,只要是我会的,尽量录制在下期视频和大家交流。

相关帖子

沙发
chaosk| | 2013-4-3 16:24 | 只看该作者
妹子对这个都感兴趣?

使用特权

评论回复
板凳
群龙舞十方| | 2013-4-3 16:55 | 只看该作者
好厉害的妹子...让我汗颜了:funk:

使用特权

评论回复
地板
2012CMD| | 2013-4-3 17:01 | 只看该作者
恩,应该叫你学姐吧,真心牛叉,录得very good

使用特权

评论回复
5
21世纪黄毛| | 2013-4-3 17:29 | 只看该作者
赞一个

使用特权

评论回复
6
SunFans| | 2013-4-3 20:10 | 只看该作者
不错,赞一个!

使用特权

评论回复
7
bd7qwmcu| | 2013-4-4 09:05 | 只看该作者
很不错

使用特权

评论回复
8
gooogleman| | 2013-4-4 09:29 | 只看该作者
好厉害的妹子!难得啊!

使用特权

评论回复
9
beanandpeach| | 2013-4-4 10:16 | 只看该作者
俺是冲着妹子来的,

使用特权

评论回复
10
guanhe| | 2013-4-4 10:37 | 只看该作者

使用特权

评论回复
11
zcx2012| | 2013-4-4 13:48 | 只看该作者
谁还敢娶这妹子?

使用特权

评论回复
评论
qq1959837802 2013-4-4 14:15 回复TA
让给偶吧 
12
群龙舞十方| | 2013-4-4 14:05 | 只看该作者
听声音应该是个萌妹子...

使用特权

评论回复
13
qq1959837802| | 2013-4-4 14:06 | 只看该作者
俺是看见 "妹子" 二字过来的

无论如何都要顶下妹纸啊

使用特权

评论回复
14
杜专| | 2013-4-4 15:24 | 只看该作者
:lol

使用特权

评论回复
15
cemen| | 2013-4-4 16:57 | 只看该作者
顶妹子。

使用特权

评论回复
16
sgj245609615| | 2013-4-4 17:43 | 只看该作者
顶妹子

使用特权

评论回复
17
cuizb2583| | 2013-4-4 18:40 | 只看该作者
赞一个
顶一下

使用特权

评论回复
18
jdwang001| | 2013-4-4 19:24 | 只看该作者
机会不错,我找工作的时候,还歧视学历呢。好好努力。

使用特权

评论回复
19
lee.mer| | 2013-4-4 19:25 | 只看该作者
这是要逆天了。

使用特权

评论回复
20
群龙舞十方| | 2013-4-5 08:13 | 只看该作者
妹子,爆个照呗...

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

65

主题

117

帖子

3

粉丝