2013年9月4日

栈和堆的生长方向

摘要: FROM:http://blog.sina.com.cn/s/blog_6622340201011d81.html51的栈是向高地址增长,INTEL的8031、8032、8048、8051系列使用向高地址增长的堆栈;但同样是INTEL,在x86系列中全部使用向低地址增长的堆栈。其他公司的CPU中除ARM的结构提供(事实上,stm32 lpc的 都是小端)向高地址增长的堆栈选项外,多数都是使用向低地址增长的堆栈。在没有MMU的时代,为了最大的利用内存空间,堆和栈被设计为从两端相向生长。那么哪一个向上,哪一个向下呢?人们对数据访问是习惯于向上的,比如你在堆中new一个数组,是习惯于把低元素放到低地 阅读全文

posted @ 2013-09-04 17:01 イケメンおっさん_汪汪 阅读(271) 评论(0) 推荐(0) 编辑

CCM - 极致发挥STM32F4性能的利器

摘要: 转:http://blog.sina.com.cn/s/blog_61332ec601016hj6.htmlCCM(Core Coupled Memory)是给F4内核专用的全速64KB RAM, 它们没有经过总线矩阵, F4内核与之直接相连, 地址空间在0x1000_0000 ~ 0x1000_FFFF.由于其地址空间和常规的SRAM不连续, 加之DMA和外设也无法直接使用它们, 就使得一般的用户程序完全视而不见这64KB全速RAM, 罪过啊...言归正传, 既然是全速又专用的SRAM, 可以这么使用来充分发挥F4性能:1. 作堆栈.修改链接脚本, 找到 CCMRAM_region, blo 阅读全文

posted @ 2013-09-04 16:12 イケメンおっさん_汪汪 阅读(482) 评论(0) 推荐(0) 编辑

c指针和const 的小程序

摘要: 1 #include 2 int main(void) 3 { 4 double rates[3] = {11.1,22.2,33.3}; 5 6 const double *pc1;//不可以更改所指向的数据,但是可以更改所指向的地址 7 8 double * const pc2 = rates;//不可以更改所指向的地址,但是更改所指向的数据 9 10 const double * const pc3 =rates+2;// 既不···也不能··· 11 12 pc1 = rates;13 p... 阅读全文

posted @ 2013-09-04 14:02 イケメンおっさん_汪汪 阅读(216) 评论(0) 推荐(0) 编辑

导航