STM32F4 定义ucosii到CCM

原创 2016年05月31日 13:51:38

  STM32F4说是有192KRAM 但是很是很坑。192k分为两部分128k普通RAM和64K CCM RAM,CCM只能内核调用,外设无法使用。本来想着192KRAM挺好,结果仔细看悲剧了。但是也不能浪费,可以尝试使用它,把UCOS内核数据放到CCM。网上搜索到一个FreeRTOS的照着他的自己弄了弄。

http://www.stmcu.org/module/forum/thread-604814-1-1.html再次感谢该网友。。。


1.勾选IARM2 确认使用CCM

此时编译程序后打开.map文件会发现使用了CCM但是没有数据定义到这块RAM。同时发现IRAM1内部关于UCOS的存储。


2.打开.sct文件添加如下图代码--UCOS_ii_IARM自己写的,把刚刚在IRAM1中看到的 os_core.o 和os_cpu_c.o文件添加到CCM。 

修改MDK 不勾选USE Memory Layout from Targe Dialog,如下图。保存重新编译

这时打开.map文件会发现os_core.o 和os_cpu_c.o文件添加到了CCM。任然没有在CCM中定义数据啥的。



如果需要定义数据到CCM就需要修改.sct文件。比如我要在CCM定义20K数组存放图片则需要这样,首先定义数组并at起始地址

u8 g_nJPEGBuff[20*1024] __attribute__((at(0x10000000))) = {0,};

然后UCOS定义到CCM的数据位置也要相应的调整,这里我分配32K给数组用,32K给UCOS用那么.sct文件就需要修改成如下图所示


此时编译后打开.MAP文件就会看到有一个数据定义在了 RW_IRAM2即CCM中 尺寸是0x00005000也就是我们定义的20K数组占用的。而UCOS则定义到了0x10008000地址以后的空间。如下图



版权声明:本文为博主原创文章,未经博主允许不得转载。

STM之ucos-ii堆栈

uCOS任务堆栈的深入分析(转) 堆栈作用的就是用来保存局部变量,从本质上讲也就是将CPU寄存器的值保存到RAM中。在uCOS中,每一个任务都有一个独立的任务堆栈。为了深入理解任务堆栈的作用,不...

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

转载▼ 标签:  stm32   ccm   it 分类: 嵌入式 CCM(Core Coupled Memory)...

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

CCM(Core Coupled Memory)是给F4内核专用的全速64KB RAM, 它们没有经过总线矩阵,F4内核与之直接相连, 地址空间在0x1000_0000 ~ 0x1000_FFFF. ...

stm32f4移植ucosii

前些时候把ucosii移植到stm32f4上,记录一下过程。 移植参考了《STM32F407全套资料》 移植实现的功能:在ucosii系统下驱动lcd! 具体的原理,可以去看看  Ucos中文书-...
  • wzs298
  • wzs298
  • 2013年10月24日 20:43
  • 7280

STM32F4_UCOSii

  • 2015年08月06日 16:11
  • 222KB
  • 下载

STM32F030能不能跑UCOSII

在STM32F030F4上面跑UCOS

移植ucosII到STM32F103ZE(一)

http://blog.sina.com.cn/s/blog_abd39cc70101cl5w.html 一、开发环境: 1.         开发环境:     keil ...

UCOSII移植STM32f103操作过程

UCOS操作系统是一款开源的小巧但强大的嵌入式操作系统,学习嵌入式的朋友都会接触到这款操作系统。 在使用过程中,我们做的必要的工作就是把它移植到自己所用的开发板上。下面我分享一下我通过在官网上下载U...

iar环境下,ucosii移植到stm32f103ze上

Ucosii移植到STM32上 1.使用的开发环境是IAR 5.4       STM32芯片为STM32F103ZET6 使用ST官方提供的标准固件库,建立工程, 我下载的标准库版...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:STM32F4 定义ucosii到CCM
举报原因:
原因补充:

(最多只允许输入30个字)