导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→[quote][b]以下是引用[i]shangdawei在2

* 31236: [原创] C51 函数的绝对定位?

   shangdawei 
shangdawei发表的帖子 

 

以下是引用shangdawei在2003-5-20 20:04:41的发言:
[quote]以下是引用shangdawei在2003-5-19 20:36:12的发言:
 [原创]   C51 函数的绝对定位?我有一个项目,使用 SST89C58 单片机,有 32 KB Flash ROM, 我想用它来做一个 小小的操作系统, 提供 键盘扫描, LCD 显示, 串口通讯等等。这可能用不到 32 KB 内存。
  我想用它来加载 存储在 24C512 的应用程序。我使用 64KB 的 XRAM. 我想把程序加载在64KB 中的 高 32 KB 空间。64KB 中的 低 32 KB 空间用作 XRAM. 64KB 中的 最高 4 KB 空间 用作 I/O . 我想在编制程序的时候,在一块连接。 生成代码之后, 分割存放。操作系统 在片内, 应用程序 在片外 IIC 接口的 EEPROM 当中(可能有多个)。
  在系统复位之后,生成一个菜单,根据选择,从相应的IIC 接口的 EEPROM 中加载它到XRAM当中,然后运行它。
  现在的问题是:如何让应用程序 代码定位在 08000H 开始呢 ?
                如何让操作系统 代码定位在 00000H 开始呢 ?

  本系统采用 冯诺依曼体系 , 使用 /PSEN and /RD 信号读取 代码和数据。
  使用 /WR 信号写入数据.

  恳请各位朋友帮忙解决这个问题。 我打算使用 Keil C51 编制程序。

  
 [/quote]

 
 使用通配符解决这个问题 :
 -------------------------------------------------------------------------------------

 QUESTION

 Is there a way to use wildcards in the CODE and XDATA directives in the BL51 linker? 

 ANSWER

 Yes. In C51 V6.01, wildcard support was added to BL51 for the segment location directives (CODE, XDATA, DATA, and so on). For example: 

 BL51 myfile.obj CODE (?pr?*?myfile (0x100))

 
 in uVision2: Under the options for target, select the BL51 Locate tab and in the code section put this: 
  ?pr?*?myfile (0x100)

 
 locates all program segments (functions) found in the myfile.obj OMF file starting at address 0100h. 

 -------------------------------------------------------------------------------------
 


参见 

 -------------------------------------------------------------------------------------
BL51: LOCATING FUNCTIONS AT ASCENDING ADDRESSES
QUESTION

When I link my C51 application I would like to locate the functions in a source module in ascending order starting at a specific address. I know I can use the linker CODE directive to do this for each individual function, but can I do it for all the functions in a module? 

ANSWER

No. This is not possible with C51 Version 5. It has been added in C51 V6.01. Refer to BL51: USING WILDCARDS IN SEGMENT NAMES for more information. 
 -------------------------------------------------------------------------------------




发表时间:2003年5月20日20:06:40

  
回复该帖

本主题共有 7 帖,分页:>>>>>该主题的所有内容[7]条

 *树形目录 只列出部分跟帖的标题以及简单的摘要信息 该主题的部分跟帖如下:

  31383.[详细]简单~~~~~~
摘要:有答案了吗?如没有,可发mail到cwb2003mr@yahoo.com.cn我目前有空和你切磋 ......(72字)
- [guest][858次] 2003年5月21日

  31553.[详细][讨论] 函数的定位问题 ?
摘要:操作系统的函数如何被应用程序调用 ?  是对每一个 APP 都与 OS 编译绑定, 还是在 OS 中设一个跳转表  在应用程序中&......(195字)
- [shangdawei][886次] 2003年5月22日

[上一篇帖子]:谢谢了。小弟我最近正迷茫着呢。学还是不学。听说要有pascal和数据库的知识。
[下一篇帖子]:please say it clearly. what&nbs