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

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

[复制链接]
endlesswind 发布时间:2008-9-3 14:50
STVD7的开发环境中提供了非常方便的手段,可以轻松的实现C语言程序的存储定位。以下说明以我另一个帖子的例子作为前提:
* p# h; e7 k4 D' U0 a* w! m8 T) eST7 16位通用定时器中的输出比较功能(Output Compare)详解
9 M: p" Q; v/ D8 o: U4 }) a3 C; o  假定我有一个函数delay()需要定位到0x8000开始的区域;有三件事要做:
4 P- L7 h% |# ?1)原有的代码段是默认定位在从0x8000开始的区域,把默认代码段重定位到从0x9000开始的区域;
# z6 [% z7 D. x, \  B8 ^2)在函数delay()前用#pragma定义一个新的代码段,命名为.delay_code,程序片断如下;+ y! c* n" F5 L+ L0 z6 q8 p1 X+ {
3)将新的代码段.delay_code定位在从0x8000开始到0x8FFF结束的区域。 8 H3 H2 l1 N3 {4 Q% Z, [+ j, o

+ h+ V& Z" {/ T" i7 x0 O- G程序片断: ' `$ o) ^/ k" o
--------------------------------------------------------------------------------
& V2 o+ |3 D& b; D; ^! o#pragma section (delay_code) // 定义新代码段 & O/ ?' R2 H: ~
void delay(void)4 S% |+ L; m/ L; i! {7 H# ~
{
; H6 P. `: `. a" a2 U+ cunsigned char counter;* w# g/ s8 ^" `
for (counter = 0; counter < 100; counter++)
3 X1 V4 f! [5 t; N_asm("nop");
! L. c8 G/ T3 R* \' N4 k} / a# g* ^2 U2 P( s& M. J9 e5 C  N
#pragma section () // 以下代码恢复到默认代码段 0 G! s$ y4 a6 v2 p2 g" x
--------------------------------------------------------------------------------
- ^& z, _1 I8 n完成代码段的定位、重定位,请按Project/Settings...,按照下图配置就可完成:
3 \9 S8 m# P. k9 T; D! ]5 W8 D4 \
编译完后的.map文件显示定位成功:
" _! s) h( u$ u" X$ t! d' C--------2 a% c6 [7 l/ A( c: ]$ u( G' H
Segments
. w) A  b1 b; L--------
: g0 p( `0 I% t2 ?- G- M# S1 ^0 A
8 x4 j$ M, e% {$ ~& O7 F( f4 Gstart 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 手机版