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

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

[复制链接]
endlesswind 发布时间:2008-9-3 14:50
STVD7的开发环境中提供了非常方便的手段,可以轻松的实现C语言程序的存储定位。以下说明以我另一个帖子的例子作为前提:( _; U8 @7 N3 E3 n; A
ST7 16位通用定时器中的输出比较功能(Output Compare)详解
5 W7 {' g& V' b+ c1 C2 l  假定我有一个函数delay()需要定位到0x8000开始的区域;有三件事要做:9 h9 z( k0 i1 O4 \$ J1 Y9 r
1)原有的代码段是默认定位在从0x8000开始的区域,把默认代码段重定位到从0x9000开始的区域;4 P: Y% r* r- ~: l5 g- J5 n
2)在函数delay()前用#pragma定义一个新的代码段,命名为.delay_code,程序片断如下;3 A  T+ t* `6 I, a
3)将新的代码段.delay_code定位在从0x8000开始到0x8FFF结束的区域。
7 r1 ]3 X2 A& s
. D& ^: n1 M- d% T" L1 W. `程序片断:
0 ^9 W) y4 D2 X; Y* w--------------------------------------------------------------------------------; }; y7 V" T9 e1 L
#pragma section (delay_code) // 定义新代码段
9 A2 @" ?' X9 g: t- Lvoid delay(void)/ P5 V# B; o  U* E6 [% \( Q
{  j" c! e. B4 F8 M
unsigned char counter;
- H1 g- q/ V4 jfor (counter = 0; counter < 100; counter++)1 x6 u+ a" a. n! Q$ H$ J  a" A- N
_asm("nop");" V) S$ }# B7 s5 t% Y
}
! G4 p/ L8 r# m) \. O) J#pragma section () // 以下代码恢复到默认代码段
& |* |, N- ^* T* i! _" P-------------------------------------------------------------------------------- ; q# e% t" y, i; V: m
完成代码段的定位、重定位,请按Project/Settings...,按照下图配置就可完成:
1 _* t2 H) N; B0 @3 @& p! s$ c2 w& c/ c+ e/ u  n$ L
编译完后的.map文件显示定位成功:) z3 i$ S+ g2 Z  p2 I
--------
: ^4 c: q9 A" R- z: RSegments
5 m6 q. r3 l& ?& `8 b- t--------
& ^! C% {2 M  D7 s+ |) l6 d& X" c+ f& u" R5 B) a& U5 A
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 手机版