你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

ST7 C语言程序定位:在STVD7中如何配置

[复制链接]
endlesswind 发布时间:2008-9-3 14:50
STVD7的开发环境中提供了非常方便的手段,可以轻松的实现C语言程序的存储定位。以下说明以我另一个帖子的例子作为前提:7 i+ L8 z5 G$ Y" U$ X7 \0 }
ST7 16位通用定时器中的输出比较功能(Output Compare)详解# D3 [4 j0 M' z7 @; ]' p  o
  假定我有一个函数delay()需要定位到0x8000开始的区域;有三件事要做:
8 Q: K4 [2 }. v3 E1)原有的代码段是默认定位在从0x8000开始的区域,把默认代码段重定位到从0x9000开始的区域;
7 t/ N7 I) o! ?% V# X7 L2)在函数delay()前用#pragma定义一个新的代码段,命名为.delay_code,程序片断如下;# ]) L. \) @2 s% G& ]; i/ N& j" F
3)将新的代码段.delay_code定位在从0x8000开始到0x8FFF结束的区域。
1 b. E! G( i" k0 |& M  [6 v
4 O" G. r8 |$ q& `" B, a7 T程序片断: ! B) T# b' g+ k0 p, S# W
--------------------------------------------------------------------------------/ K: l1 x0 T' Y3 L. W4 i7 p
#pragma section (delay_code) // 定义新代码段 4 D+ R' f; I& \9 E0 k/ y) e( b
void delay(void)* u/ F0 n0 N, B7 _+ T
{
7 s- H/ s3 b3 y6 T# z" ^unsigned char counter;
( G' K2 ^0 v7 L7 lfor (counter = 0; counter < 100; counter++)
+ g7 i0 K; J8 B, W0 G! v& B$ Y2 x_asm("nop");% L$ g- N: n* V! h# [8 W
}
3 d! l5 |7 w* @4 U, @4 \#pragma section () // 以下代码恢复到默认代码段
0 P; O: H% z0 m% M7 R0 x/ {! I-------------------------------------------------------------------------------- 2 A  ~6 M. d) V! C* S# b. Y
完成代码段的定位、重定位,请按Project/Settings...,按照下图配置就可完成:
  R5 E7 D9 p6 B) ?  m# Z3 d5 V. G5 ~0 [# Z
编译完后的.map文件显示定位成功:
; Q+ B; A  x. k8 l5 ]--------& \6 F$ F0 v! E$ _* Z
Segments
7 V( Y* y  U% t6 n--------
2 a! s6 Z( g# V) G' ?4 x7 C# ^
5 V7 w7 x6 S" f" A/ Ystart 00009000 end 000090da length 218 segment .text
收藏 评论0 发布时间:2008-9-3 14:50

举报

0个回答

所属标签

相似分享

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版