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

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

[复制链接]
endlesswind 发布时间:2008-9-3 14:50
STVD7的开发环境中提供了非常方便的手段,可以轻松的实现C语言程序的存储定位。以下说明以我另一个帖子的例子作为前提:
, m; x. T) y9 Z: `, r5 t) y3 hST7 16位通用定时器中的输出比较功能(Output Compare)详解, v4 j0 E% w" q* s
  假定我有一个函数delay()需要定位到0x8000开始的区域;有三件事要做:: W$ [/ o' E) j* m" y( U) @' R
1)原有的代码段是默认定位在从0x8000开始的区域,把默认代码段重定位到从0x9000开始的区域;5 D8 q3 f& d, _3 J# L3 z: V
2)在函数delay()前用#pragma定义一个新的代码段,命名为.delay_code,程序片断如下;, M# z0 J6 Y- F" k+ ?
3)将新的代码段.delay_code定位在从0x8000开始到0x8FFF结束的区域。
) L' f- ?# I( c" m! Y  c. `  u% f; A# l! s- f
程序片断: - e0 h5 M1 I# `
--------------------------------------------------------------------------------
$ `' U5 a+ e; @( M  q; D6 ^#pragma section (delay_code) // 定义新代码段
7 I9 C# n3 w8 N, {/ vvoid delay(void)
; Z( [+ e% i5 |- @' J6 x! [' O{9 b8 c6 f7 K1 _/ t5 K6 T4 ?2 F
unsigned char counter;- o0 e* P6 k. s
for (counter = 0; counter < 100; counter++)
% z" k* B! e& b) ?; w" }_asm("nop");
4 z( W. Q$ h1 i8 k}
; V2 v7 _: @% h/ r+ R#pragma section () // 以下代码恢复到默认代码段 ) j9 `* l+ T  Q& F- d
--------------------------------------------------------------------------------
) M# T3 i4 w; b" ~+ K4 j6 i完成代码段的定位、重定位,请按Project/Settings...,按照下图配置就可完成: ; I" P/ ]  E1 M2 g1 e6 a3 \6 H; B

3 @* R+ a3 I6 i0 z  R编译完后的.map文件显示定位成功:
+ c: R% u8 I* n--------
' W% [) u4 J) d% C4 o0 _4 ]% uSegments
* ]& Z) v/ @1 m- c-------- / P2 |. Z( T$ a$ |5 z- k, z$ u
7 }  @" Y& N2 B! b5 D1 z
start 00009000 end 000090da length 218 segment .text
赞 收藏 评论0 发布时间:2008-9-3 14:50

举报

0个回答
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版