首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

请教一个有关新建工程向导时的选项问题!

请教一个有关新建工程向导时的选项问题!

我用的DG128的芯片`,CW4.6版本,新建工程到第八步的时候(new project wizard-page 8)有一个选项:which memory model shall we used? 开始我选2.banked 但是工程生成的S19文件在板子里不能运行。后来我改选1.small 就又可以了。
我想知道是什么原因,它们的区别是什么`? 谢谢。
i know what to doo, i know where to goo, i do! yes,i do!
你有没用操作系统?
飞思卡尔带我走进神奇的单片机世界
没有用
i know what to doo, i know where to goo, i do! yes,i do!
一般SMALL模式只适用于代码和数据长度小于64K的应用,在SMALL模式下生成的代码不会对分页寄存器进行操作,而且所有的地址都是16位的。在BANKED模式下,编译器对自动根据代码或数据的地址对分页寄存器进行操作。你的问题可能是在BANKED模式下,没有将中断函数放入非分页地址。将某个函数放入非分页地址要用如下的声明:

#pragma CODE_SEG __NEAR_SEG NON_BANKED
海纳百川  有容乃大
我已经将中断函数放入分页地址了,即加了:#pragma CODE_SEG __NEAR_SEG NON_BANKED
但是不行,程序运行不了。
我是用监控程序下载程序的,我不知道是不是跟里面的监控程序有关
现在的程序代码都不大,都是分别对各个模块初始化,做简单测试 在SMALL模式下盏时可以用 但我想知道问题所在,以后代码多了肯定要还要BANKED的``
希望斑竹释疑
i know what to doo, i know where to goo, i do! yes,i do!
用监控程序的话是需要重新映射中断矢量地址的。你重新映射过吗?
海纳百川  有容乃大
没有映射
斑竹可以告诉我该怎么做吗?
i know what to doo, i know where to goo, i do! yes,i do!
请参看这个帖子:
http://bbs.eccn.com/dispbbs.asp?BoardID=3&RootID=118663&id=119119&star=1&skin=
海纳百川  有容乃大
不好意思,还没有看清楚就说没映射。
今天看了监控程序的源码,它已经把中断向量表映射到EF8C-EFFF去了``原来的F000-FFFF被监控程序占有了``
这样的话我是不是就不用在改了,可以直接在.prm文件里加上中断声明就可以了,比如在最下面写 VECTOR ADDRESS 0xEFDE Int_TimerOverFlow , RAM和ROM的定义也已经作乐相应修改了 ROM_C000 = READ_ONLY 0xC000 TO 0xEEFF;
不仅仅是中断,是连最基本的语句都不跑。
比如程序:
#include /* common defines and macros */
#include /* derivative information */
#pragma LINK_INFO DERIVATIVE "mc9s12dg128b"

void main(void) {
/* put your own code here */

PORTB=0xFE;

for(;;) {} /* wait forever */
/* please make sure that you never leave this function */
}
这样的话连接PB口的小灯应该有反映,但是却没有。而如果是在SMALL下的话就是好的,中断也是好的```
很疑惑`!

i know what to doo, i know where to goo, i do! yes,i do!
把你的整个project,连同监控程序一起贴出来看看吧。
海纳百川  有容乃大
http://bbs.chinaecnet.com/uploadImages/overflow_interrupt1.rar
监控程序在书后附录中,这里把中断相关的部分打出来吧
中断向量表移到这里;共58个;
ORG $EF8C
PWMSDN EQU $EF8C
PTPIF EQU $EF8E
C4TIER EQU $EF90
``````````````````
``````````````````
``````````````````
COPFR EQU $EFFA
CMFR EQU $EFFC
RESET EQU $FFFE
在原来的向量空间依然定义了相应的中断向量V1-V57
ORG $FF8C
FDB V1
FDB V2
`
`
`
`
FDB V56
FDB V57
在监控程序的中断服务子程序入口处,通过以下命令转向用户定义的中断服务子程序:
V1 LDX PWMSDN
PSHX
RTS
*
V2 LDX PTPIF
PSHX
RTS
*
``
``
``
``
V56 LDX COPER
PSHX
RTS
*
V57 LDX CMFR
PSHX
RTI
i know what to doo, i know where to goo, i do! yes,i do!
请把监控程序的S19文件也贴出来。
海纳百川  有容乃大
你的程序中根本没有把PORTB口置为输出,小灯怎么会有反应...
海纳百川  有容乃大
里面不是已经写了PORTB=0xFE么,中断里取反PORTB=~PORTB;还需要对B做其他设置么?
这是在SMALL模式下的 ,硬件测试运行正常
http://bbs.chinaecnet.com/uploadImages/overflow_interrupt.rar
谢谢斑竹了```
i know what to doo, i know where to goo, i do! yes,i do!
或者您可以看看这个LED的示例工程,分别在两种模式下:前者正常,后面的不行。
http://bbs.chinaecnet.com/uploadImages/LED_SMALL.rar
http://bbs.chinaecnet.com/uploadImages/LED_BANKED.rar
这个是SMALL下的S19文件
S0600000433A5C446F63756D656E747320616E642053657474696E67735C41646D696E6973747261746F725CD7C0C3E65C30305C63775F6578705C4C45445F534D414C4C5C62696E5C46756C6C5F436869705F53696D756C6174696F6E2E61627301
S123C000FEC033FDC031270E35ED31EC3169700434FB310326F2FEC035EC31270BED3118C8
S123C0200A30700434F920F13DCF210007D206C0910001C037C0BA21000002DC4426FCDC00
S123C0404427FCFE2100087E21008E00082604C67E5B018E00072604C6BD5B018E000626F7
S123C06004C6DB5B018E00052604C6E75B018E00042604C6E75B018E00032604C6DB5B0178
S123C0808E00022604C6BD5B01042504C67E5B013DCC03805B465A4DC7877C2100535B03C6
S11FC0A05B01A720130794FC21008C00082DF6C7877C2100C6055B4D20EB000072
S105FFFEC02914
S9030000FC
这个是BANKED下的S19文件
S0610000433A5C446F63756D656E747320616E642053657474696E67735C41646D696E6973747261746F725CD7C0C3E65C30305C63775F6578705C4C45445F42414E4B45445C62696E5C46756C6C5F436869705F53696D756C6174696F6E2E616273D4
S11AC000CF21004A8081384A8056380001C011C01521000002000090
S105FFFEC0003D
S224388000DC4426FCDC4427FCFE2100087E21008E00082604C67E5B018E00072604C6BD5BDB
S224388020018E00062604C6DB5B018E00052604C6E75B018E00042604C6E75B018E00032605
S22438804004C6DB5B018E00022604C6BD5B01042504C67E5B010ACC03805B465A4DC7877C11
S2243880602100535B035B01A720154A800038FC21008C00082DF4C7877C2100C6055B4D2067
S224388080E9FEC00DFDC00B270E35ED31EC3169700434FB310326F2FEC00FEC31270BED31F0
S20E3880A0180A30700434F920F10A8B
S804000000FB
i know what to doo, i know where to goo, i do! yes,i do!
返回列表