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

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

[复制链接]
endlesswind 发布时间:2008-9-3 14:50
STVD7的开发环境中提供了非常方便的手段,可以轻松的实现C语言程序的存储定位。以下说明以我另一个帖子的例子作为前提:
! h3 ^. W! Z/ O0 F1 u0 u" _ST7 16位通用定时器中的输出比较功能(Output Compare)详解  F" f& X7 c. x& W- t# u
  假定我有一个函数delay()需要定位到0x8000开始的区域;有三件事要做:
0 ?' R0 |. p  [' h3 }, m* T8 n1)原有的代码段是默认定位在从0x8000开始的区域,把默认代码段重定位到从0x9000开始的区域;
2 {2 b" P7 L: N$ {6 k( O" ~2)在函数delay()前用#pragma定义一个新的代码段,命名为.delay_code,程序片断如下;
+ ~5 @( X/ j! S( \" G3)将新的代码段.delay_code定位在从0x8000开始到0x8FFF结束的区域。
2 _* ], |* ~2 q, x9 |: i) Q) {( C7 ^4 i- L( E: Z- g
程序片断:
2 h  [' Q4 e9 M5 Y. V--------------------------------------------------------------------------------! U& f& {: b) j3 S; ]) K6 R
#pragma section (delay_code) // 定义新代码段
$ q0 ?2 n2 V. v/ E  t: ivoid delay(void)
' d/ b% f2 v& D1 X5 I% @) t4 W* k& A/ d! x{
! }' G# v% z# e; I% o% ^# lunsigned char counter;
* l; e1 N% Y0 a: q: B6 m( D1 Dfor (counter = 0; counter < 100; counter++)
/ p0 ?3 m' T* ]! j_asm("nop");/ m; w8 b& k# \
} 1 j# [% n" k4 ]1 k0 P
#pragma section () // 以下代码恢复到默认代码段
  |9 a3 C- T5 O4 d) C/ V--------------------------------------------------------------------------------
7 H5 q/ `& @$ c& t7 i3 v完成代码段的定位、重定位,请按Project/Settings...,按照下图配置就可完成: 7 W2 F; K4 g) O( k
5 S" X8 `! G/ ~  \
编译完后的.map文件显示定位成功:2 N$ T& a9 l0 }; ]  q) x- m
--------( Z$ O% {2 T+ e" v3 M3 x
Segments
9 N' A& v' X3 ]  B1 N' k--------
( u' c; k' ]  k  u3 }3 x7 W& P$ n+ _8 {+ v7 N
start 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 手机版