历史上的今天
今天是:2025年03月18日(星期二)
2019年03月18日 | STM32F4 定义ucosii到CCM
2019-03-18 来源:eefocus
STM32F4说是有192KRAM 但是很是很坑。192k分为两部分128k普通RAM和64K CCM RAM,CCM只能内核调用,外设无法使用。本来想着192KRAM挺好,结果仔细看悲剧了。但是也不能浪费,可以尝试使用它,把UCOS内核数据放到CCM。网上搜索到一个FreeRTOS的照着他的自己弄了弄。

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地址以后的空间。如下图

下一篇:STM32F4时钟配置
史海拾趣
|
16*32点阵屏幕由512个LED组成,在实际制作过程中我们可以采用8*8的点阵模块。 下面开始做1632点阵屏幕硬件设计。 所先设计行扫描电路: 16*32点阵屏幕总共有16行,其扫描电路一般采用74HC154或者74HC138来进行4-16扩展,这样可以占用较少的单片 ...… 查看全部问答> |
|
1、应用背景 随着科学技术的发展,各种医疗设备相继问世并得到广泛应用。应用中的很多医疗仪器都综合了传感器、自动控制、计算机软件和硬件等高科技技术。市场上的医疗仪器仪表的控制系统多数采用单片机实现,普遍存在操作繁琐、无图 ...… 查看全部问答> |
|
六七月份,太阳能产业新闻特别多,有日本太阳能飞船遨游太空,也有瑞士太阳能飞机实现夜航。阿牛哥看看太阳能应用,以前最多的是太阳能灶,太阳能热水器和太阳能计算器,现在是太阳能发电。关键是要稳定,还有并网发电价格机制。阿牛哥读读古书, ...… 查看全部问答> |
|
wince5.0 debug编译出错,release编译正常 如题。。。。。。debug错误提示是 BUILD: [01:0000000169:ERRORE] NMAKE : U1073: don\'t know how to make \'F:\\wince5project\\test1\\WINCE500\\new2440_ARMV4I\\cesysgen\\sdk\\lib\\ARMV4I\\retail\\Ndis.lib\' BUILD: [01:000 ...… 查看全部问答> |
|
一直关注各界捐款的情况,像网易,一般会捐,对这种会捐款的公司比较有好感。请问有没有搞嵌入式的公司捐款。最好在北京,天津。明年我一定争取机会到这种公司面试。… 查看全部问答> |
|
有谁用LTC3555?请帮忙看看芯片上的文字。我都割掉使能线了,表现仍与手册相反 的LTC3555的EN1脚表现与手册相反,手册是高电平有效,我的却是低电平有效。 已经把EN1割断了,飞线试了一下,还是一样的。 我的片子上的文字是: 6C 3555 J9729 我现在怀疑是假货,或者是Linear公司专为某些公司修改的。 有谁用?帮 ...… 查看全部问答> |




