请教ADS编写的程序的入口点怎么确定!!

duxiaowen   2009-4-24 22:12 楼主
问个弱智的问题

我的硬件平台是PXA270

以前可以用JFLASH烧写EBOOT。NB0,现在我把其中的一个P处理文件修改了,可以烧写.BIN的文件

我用ADS写了一小段的汇编程序,是点灯的

但是烧写进去什么反应都没有

我怀疑是不是在 ADS1.2上设置入口点不对啊 ?

那么这个入口点怎么确定呢

下面付上这段点灯程序,大家帮忙找找问题吧,谢谢啦!

xlli_GPIOREGS_PA_BASE EQU 0x40e00000
xlli_GAFR0_L_offset   EQU 0x00000054
xlli_GPDR0_offset     EQU 0x0000000c
xlli_GPSR0_offset     EQU 0x00000018
xlli_GPCR0_offset     EQU 0x00000024

EXPORT LEDTEST
AREA LEDTESTASM,CODE,READONLY
LEDTEST
     ldr r0, =xlli_GPIOREGS_PA_BASE   ;

     ldr r1, =0x0   ;
     str r1, [r0, #xlli_GAFR0_L_offset] ;

     ldr r1, =0xcfe307e4
     str r1, [r0, #xlli_GPDR0_offset]   ;

ledloop1
     
     ldr r2, = 0x8604
     str r2, [r0,#xlli_GPSR0_offset]
     bl delay1
   
ledloop2

     ldr r2, =0x0
     str r2, [r0, #xlli_GPCR0_offset]
     bl delay2

delay1
     ldr r3,=0x1ffff
delay3
     sub r3,r3,#1
     cmp r3,#0x0
     bne delay3
     b ledloop2
     mov pc,lr
     
delay2
     ldr r3,=0x2ffff
delay4
     sub r3,r3,#1
     cmp r3,#0x0
     bne delay4
     b ledloop1
     
     mov pc,lr
     
     END

回复评论 (14)

makefile里面指定的
点赞  2009-4-25 00:19
如果用ADS工程编译的话,link选项中有
点赞  2009-4-25 00:34
ADS可以设置的,不过具体的是不是要看MAP文件?
点赞  2009-4-25 08:39

点赞  2009-4-25 08:51
如果没有中断向量表的话就按楼上的方法设置。
点赞  2009-4-25 09:16
我找到了两个ADS编写的BOOTLOADER

发现这个入口点都是0xa3e00000

我按照4楼的方式添加进去

输入那段汇编代码后,生成一个BIN文件后

烧写到板子上的NORFLASH中

开机运行

什么反应都没有!!!!!
点赞  2009-4-25 18:45
1. LZ, PXA270 上 Physical Address 0xA3E00000 應是 SDRAM. 這跟 nor flash 應是無關吧, 除非 LZ 的 ADS Code 有把 MMU 打開, 並將 NOR flash Physical Address 0x00000000 mapping to 0xA3E00000, 不然是很可能會什麼反應都沒有.

2. 不知 LZ LED 是接到哪一支 GPIO??, GPSR0 設成 0x8604, 但 GPDR0 BIT15 未設成 output, GPCR0 也應設為 0x8604, 如此 BIT15, 10, 9, 2 才會有 TOGGLE 的輸出.

祝好運, 希望 LZ 早日將 PXA270 bootloader 搞定.

Paul, Chao @ Techware
点赞  2009-4-27 11:26
顶起
点赞  2009-4-27 13:37
引用: 引用 7 楼 paul_chao 的回复:
1. LZ, PXA270 上 Physical Address 0xA3E00000 應是 SDRAM. 這跟 nor flash 應是無關吧, 除非 LZ 的 ADS Code 有把 MMU 打開, 並將 NOR flash Physical Address 0x00000000 mapping to 0xA3E00000, 不然是很可能會什麼反應都沒有.

2. 不知 LZ LED 是接到哪一支 GPIO??, GPSR0 設成 0x8604, 但 GPDR0 BIT15 未設成 output, GPCR0 也應設為 0x8604, 如此 BIT15, 10, 9, 2 才會有 TOGGLE 的輸出.

祝好運, 希望 LZ 早日將 P…


1、我要怎么做才能让这段代码可以正常运行起来呢??
   实在不想打开MMU或者做虚拟映射了......
   而且我没走CE的系统,只是把270当单片机用啊....
   天啊!!我头疼
2、LED用的是GPIO9和GPIO10
点赞  2009-4-27 15:04
1. PXA270 是個複雜的 SOC, 就算要當成 Single Chip 來用, 也要把該設的設好.

2. 這程式把 GPCR 的改掉, 應該會動才是.
xlli_GPIOREGS_PA_BASE EQU 0x40e00000
xlli_GAFR0_L_offset  EQU 0x00000054
xlli_GPDR0_offset    EQU 0x0000000c
xlli_GPSR0_offset    EQU 0x00000018
xlli_GPCR0_offset    EQU 0x00000024

EXPORT LEDTEST
AREA LEDTESTASM,CODE,READONLY
LEDTEST
    ldr r0, =xlli_GPIOREGS_PA_BASE  ;

    ldr r1, =0x0  ;
    str r1, [r0, #xlli_GAFR0_L_offset] ;

    ldr r1, =0xcfe307e4
    str r1, [r0, #xlli_GPDR0_offset]  ;
ledloop1
   
    ldr r2, =((1 :SHL: 9) :OR: (1 :SHL: 10))
    str r2, [r0,#xlli_GPSR0_offset]
    bl delay1
   
ledloop2

    ldr r2, =((1 :SHL: 9) :OR: (1 :SHL: 10))
    str r2, [r0, #xlli_GPCR0_offset]
    bl delay2
    b  ledloop1

delay1
    ldr r3,=0x1ff
delay3
    subs r3,r3,#1
    bne delay3
    mov pc,lr
   
delay2
    ldr r3,=0x2ff
delay4
    subs r3,r3,#1
    bne delay4
    mov pc,lr
   
    END

Paul, Chao @ Techware
点赞  2009-4-27 16:21
0xA3E00000是SDRAM起始物理地址,使用这个作为入口的含义是:将sdram初始化并启用,程序下载到sdram并在sdram里面运行。
这个跟MMU倒没什么关系。

sdram比nor是快,不过在测试中不用sdram也无所谓的。270的nor是0x0开始的,改成0x0试试。

既然用ADS,那自然有debug模式了,你就跟踪看有没有运行。

270的GPIO9、10是有特殊作用的:输出经过buffer(缓冲)的32KHz和13MHz波形!只是配置GPIO功能是不够的,必须禁止掉这两个功能,寄存器忘了,只要在spec中搜索GPIO9,就能搜到。
点赞  2009-4-27 17:06
正解如googleman,googleman强人,拜读了你不少文章
点赞  2009-4-27 18:07
非常感谢!
明白了呵呵!!
点赞  2009-4-27 22:29
程序中怎么小了个start标号的呢?却有END
点赞  2009-7-31 20:08
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复