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

发布bitBanding例子程序

[复制链接]
qazwsx-19104 发布时间:2008-9-3 19:30
Cortex?-M3 将片内外设和SRAM都做了位映射。=====这么处理,单片机就无法直接支持4G字节内存。哈。2 v0 x: @+ |. v, J* g

  g, |3 Y. P4 `: g8 n(08年,笔记本电脑正在4G内存热炒,也来凑个热闹)6 ^; ~/ y; o! W( h9 ]. a' k
* N7 S7 z0 N* u# l, c- |; o$ s. _  M
SRAM空间2000... 映射到2200...
% k! i% k2 A5 h+ ]  A实际上,为片内SRAM仅保留了2000,0000 - 200f,ffff。
/ J# S  t4 f0 o& v* d' ~Cortex?-M3 仅保留1Mbyte空间,马马虎虎====要知道,受到07年的飞身直落,08年的DDR2仅相当于1M折合1元人民币!(不好意思,又来了。20080313Hy512M DDR2-667仅58元人民币--板上8颗芯片?每颗芯片64Mbyte不到8元?实际上DDR芯片非存储部分占用了相当大面积,近乎一半,不能简单除法。内存与逻辑生产工艺也不相同。片内SRAM相当占面积,更不要提主流CPU内的高速缓存RAM......)0 h. P4 c6 b# J1 F1 Z9 H- z

; C& @  a. `" J9 I% u( I3 l( Z9 I. ]
闲话少说,言归正传:
; M' t* |$ b' w$ R$ @0x2000 0000   bit0 对应   0x2200 00007 t( {! P2 X* M: M
0x2000 0000   bit1 对应   0x2200 0004
! X. d0 b9 I( c. D' }1 F$ F0x2000 0000   bit2 对应   0x2200 00084 V8 s# t9 d6 d: P
......" `6 I/ f, T$ }- Y3 |7 N
0x200f ffff   bit15对应   0x23ff fffc    呵呵# m' a3 N/ d/ [3 {; Y! H
7 z& @7 W, E" J. K8 L( W
$ y7 c$ q4 Q$ r; X# e! p; H1 A+ ~, X
由于32位系统,一次处理4个字节比较直观;所以,总是把4个字节一起处理;于是,字节地址0123就被一  M- q  F- K* i6 q

; s( V! @! m9 q7 |  I/ b次性处理掉了;总之,地址没有123那样连续,而是0,4,8,c,0这样蹦蹦跳跳。
) J& x! U4 f! O3 a$ E=======为每一个bit分配一个 “32bit MCU 可以方便处理的地址”,需要占用32倍地址空间。- c/ t# ?- J! t% y% J* o

( U* z7 I7 M2 O0 B0 Y2 n因此,嗯,是这样的,地址的计算公式,稍微复杂了点:7 Z8 d3 W, I: K. K, x2 c/ e
bit_word_addr = bit_band_base + (byte_offset x 32) + (bit_number × 4)
% T7 w" i- \- M* i3 t
, J) W5 `: `" u' E- I& ?$ g$ SSRAM1 r1 [2 k$ g' j1 z& t
2200 0000 加上偏移& a6 b( N$ t/ ]) t
SRAM_BB_BASE& o" C- g* U7 z) k
" Y& }, d, D! }% X# N
void get_bit(u8 db8)
+ L# G, X+ J" |, U( k{
% K+ K5 n4 ^+ [  vu32 VarAddr;
0 _2 |3 Z# b6 X( X+ A  E  VarAddr = (u32)&db8;1 S8 I6 |7 j* ~/ c. ]1 T+ z! V
  VarAddr = (0x22000000 | ((VarAddr - 0x20000000)
收藏 评论0 发布时间:2008-9-3 19:30

举报

0个回答

所属标签

相似分享

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版