打印

ARM裸机初学体会

[复制链接]
4263|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
云石学村|  楼主 | 2012-3-5 21:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天第一天来到21IC,非常高兴!汗,看来,不学习的人连这么知名的网站都不知道。。。。。。上个星期开始学ARM裸机驱动程序, 以前有点51基础, 以为很快就可以上手, 没想到光是个启动代码就有得我分析了, 哈哈,没办法, 太菜了, 之后开始学习裸机驱动,买了本《嵌入式linux应用开发完全手册》看以一遍又一遍, 写了一遍又遍,调了一遍又一遍, 关于中断方面程序老是有问题,心中烦躁异常, 今天去了码头静了一下心, 晚上回来, 哈哈, 终于调试成功了, 感慨万分! 看来, 都是烦躁惹的祸, 今天高兴, 特发此贴, 以此告诫自己不可浮躁!!刚开始学习ARM, 看来还要吃很长一段时间“菜”啊!!哈哈!

相关帖子

沙发
ZHHJemotion| | 2012-3-6 00:07 | 只看该作者
完全赞同!!!

使用特权

评论回复
板凳
lzlong| | 2012-3-6 13:11 | 只看该作者
哈哈哈 楼主厉害啊

使用特权

评论回复
地板
woshizuqiumi| | 2012-3-6 16:15 | 只看该作者

楼主你好

本帖最后由 woshizuqiumi 于 2012-3-7 20:48 编辑

我现在也在看《手册》这本书,关于第六章SDRAM的使用,因为我是在windows操作系统下学,用的编译器是ADS1.2,所以我将书上的.s源码改了下,代码如下。为什么我在AXD中调试时,每次运行到copy_steppingstone_to_sdram函数里的循环中就会死机,AXD的进度条一直有动。直接下载到机子上可以正常运行的。
=====================================
=====================================
MEM_CTL_BASE        EQU                0x48000000
SDRAM_BASE        EQU                0x30000000

        AREA Init,CODE,READONLY
        ENTRY
        IMPORT main
Start
        bl disable_watch_dog
        bl memsetup
        bl copy_steppingstone_to_sdram
        ldr pc,=on_sdram
        
on_sdram
        ldr sp,=0x34000000
        bl main
        
halt_loop
        b halt_loop
        
disable_watch_dog
        mov r1,#0x53000000
        mov r2,#0x0
        str r2,[r1]
        mov pc,lr
        
copy_steppingstone_to_sdram
        mov r1,#0
        ldr r2,=SDRAM_BASE
        mov r3,#4*1024
1
        ldr r4,[r1],#4
        str r4,[r2],#4
        cmp r1,r3
        bne %b1
        mov pc,lr
        
memsetup
        mov r1,#MEM_CTL_BASE
        adrl r2,mem_cfg_val
        add r3,r1,#52
1
        ldr r4,[r2],#4
        str r4,[r1],#4
        cmp r1,r3
        bne %b1
        mov pc,lr
        
        align
        
mem_cfg_val
        DCD          0x22011110            ; BWSCON
    DCD   0x00000700      ; BANKCON0
    DCD   0x00000700      ; BANKCON1
    DCD   0x00000700      ; BANKCON2
    DCD   0x00000700      ; BANKCON3  
    DCD   0x00000700      ; BANKCON4
    DCD   0x00000700      ; BANKCON5
    DCD   0x00018005      ; BANKCON6
    DCD   0x00018005      ; BANKCON7
    DCD   0x008C07A3      ; REFRESH
    DCD   0x000000B1      ; BANKSIZE
    DCD   0x00000030      ; MRSRB6
    DCD   0x00000030      ; MRSRB7
   
    END

使用特权

评论回复
5
wenming| | 2012-3-6 16:30 | 只看该作者
尽量不要用裸机。

使用特权

评论回复
6
mercury2008| | 2012-3-7 17:26 | 只看该作者
裸机的时候,AXD调试有时候有这种情况,我也碰到过。同感。

使用特权

评论回复
7
woshizuqiumi| | 2012-3-7 20:45 | 只看该作者
本帖最后由 woshizuqiumi 于 2012-3-7 20:49 编辑

6# mercury2008
今天我直接把程序下载到机子上可以正常运行,我发现ARM的开发工具本身就是个坎,很多问题是因为工具使用造成的,很打击积极性啊

使用特权

评论回复
8
yanhaiyuyuyu| | 2012-4-22 11:19 | 只看该作者
楼主用的是什么型号的芯片啊?

使用特权

评论回复
9
yanhaiyuyuyu| | 2012-4-22 11:20 | 只看该作者
楼主用的是什么型号的芯片啊?

使用特权

评论回复
10
ji7423| | 2012-4-23 12:23 | 只看该作者
不错顶个·!~说的很好

使用特权

评论回复
11
mercury2008| | 2012-5-22 11:33 | 只看该作者
你可以使用DNW直接下载到内存中运行。我也很少用并口,AXD。

使用特权

评论回复
12
小懒懒| | 2013-3-1 10:12 | 只看该作者
裸机玩了很久都没搞定

使用特权

评论回复
13
yuanxiaote| | 2013-3-21 19:46 | 只看该作者
共勉,,^_^

使用特权

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

本版积分规则

0

主题

1

帖子

0

粉丝