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

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

[复制链接]
endlesswind 发布时间:2008-9-3 14:50
STVD7的开发环境中提供了非常方便的手段,可以轻松的实现C语言程序的存储定位。以下说明以我另一个帖子的例子作为前提:
$ Y# x' m! r, v/ b$ VST7 16位通用定时器中的输出比较功能(Output Compare)详解$ p7 }* K- q% m- m
  假定我有一个函数delay()需要定位到0x8000开始的区域;有三件事要做:/ l# c3 I% E' o1 ^
1)原有的代码段是默认定位在从0x8000开始的区域,把默认代码段重定位到从0x9000开始的区域;: a) J/ \2 _1 W
2)在函数delay()前用#pragma定义一个新的代码段,命名为.delay_code,程序片断如下;1 u9 h/ }" e  r; I! }
3)将新的代码段.delay_code定位在从0x8000开始到0x8FFF结束的区域。
& E3 A( f4 d5 X- q3 N7 W6 ?5 e8 s7 T& d
程序片断:
8 K5 h: K8 a! c--------------------------------------------------------------------------------  K2 P" {2 M" |# O- j
#pragma section (delay_code) // 定义新代码段 3 O& h: S! p6 A$ \" w! y# V" A
void delay(void)
+ k" m- B- ]+ ^8 Y' \; `{
+ }. n4 ~! s( H5 Vunsigned char counter;
) k: J) Y  ]6 J' ~for (counter = 0; counter < 100; counter++)
3 q, {- t5 g! k; f) f1 L_asm("nop");+ F3 f) w+ c1 v% j
} , L+ K! g1 I- w1 }! H8 S* l) t. m7 o+ J* ]
#pragma section () // 以下代码恢复到默认代码段
4 W8 p4 }2 X/ [: Q6 e- z2 d; f-------------------------------------------------------------------------------- ) h( |% s1 R: r, p8 H" W
完成代码段的定位、重定位,请按Project/Settings...,按照下图配置就可完成: " x. d' m5 u; y+ K

9 k3 A: l1 ~4 `* s# |8 u+ T编译完后的.map文件显示定位成功:
* M' @% o- e  h4 x8 A--------
* ]; X# e. m, Y0 p) c& Q9 c2 y' ZSegments
. v0 d# \& G7 c4 B$ P--------
" F* s# h& t& W3 D3 D
6 b5 R2 v1 y$ ?! [+ l+ g5 mstart 00009000 end 000090da length 218 segment .text
收藏 评论0 发布时间:2008-9-3 14:50

举报

0个回答

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版