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

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

[复制链接]
endlesswind 发布时间:2008-9-3 14:50
STVD7的开发环境中提供了非常方便的手段,可以轻松的实现C语言程序的存储定位。以下说明以我另一个帖子的例子作为前提:
5 `! d, m& B6 g" aST7 16位通用定时器中的输出比较功能(Output Compare)详解5 A  s+ T4 n5 e$ ~
  假定我有一个函数delay()需要定位到0x8000开始的区域;有三件事要做:
* E- N+ u/ W+ ]  d6 m9 p1)原有的代码段是默认定位在从0x8000开始的区域,把默认代码段重定位到从0x9000开始的区域;6 |6 p* [; r1 w# [4 N7 L8 c
2)在函数delay()前用#pragma定义一个新的代码段,命名为.delay_code,程序片断如下;
; E$ m; c9 b& g& x# f  l  J' M8 `3)将新的代码段.delay_code定位在从0x8000开始到0x8FFF结束的区域。 0 C* g/ e* B4 T3 s! o5 C
& w: g. ]6 q( O* Y4 x( q! }
程序片断:
2 \/ M4 Z" `' z4 }--------------------------------------------------------------------------------) @0 X( S6 i8 {0 T* D. {
#pragma section (delay_code) // 定义新代码段 2 e- R) I# U  ?% o2 I# T% U7 W# N
void delay(void)
' E* m7 M& J" i9 E/ d* P{
$ w: O, Y: _3 Q3 |' junsigned char counter;) r5 ~0 \* {" k  \
for (counter = 0; counter < 100; counter++)
6 l2 {5 c% a. }/ r: c! p* f_asm("nop");4 c$ K# A7 \+ }: s1 g
}
! i! o( e8 O2 I#pragma section () // 以下代码恢复到默认代码段
7 }$ l" K! o5 l, L$ g/ v0 ?-------------------------------------------------------------------------------- : G- U) L  f: t# V
完成代码段的定位、重定位,请按Project/Settings...,按照下图配置就可完成:
. Q- R$ t" m8 m6 o$ s  p% `: {2 z7 m8 P% I, p6 o3 T4 H1 D' @
编译完后的.map文件显示定位成功:
1 [4 {4 ]9 U$ x; c8 i4 u2 s--------6 v9 Y0 I- U% v4 |
Segments
, U4 a/ q8 {, c! y- j" [5 m--------
4 q9 i' N) U, q! |" M3 M3 e( m% y5 n/ O! C7 O
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 手机版