基于STM32F10x的uC/GUI初始化设置

发布者:神秘行者最新更新时间:2016-10-08 来源: eefocus关键字:STM32F10x  GUI  初始化设置 手机看文章 扫描二维码
随时随地手机看文章
STM32F10x Device,ICF使用外部SRAM,Heap放入SRAM中。

/*-Memory Regions-*/

define symbol __ICFEDIT_region_ROM_start__ = 0x08000200;

define symbol __ICFEDIT_region_ROM_end__   = 0x0807FFFF;

define symbol __ICFEDIT_region_RAM_start__ = 0x20000000;

define symbol __ICFEDIT_region_RAM_end__   = 0x2000FFFF;

define symbol __ICFEDIT_region_EXT_SRAM_start__ = 0x64000000;

define symbol __ICFEDIT_region_EXT_SRAM_end__   = 0x6407FFFF;

/*-Sizes-*/

define symbol __ICFEDIT_size_cstack__ =0x200;

define symbol __ICFEDIT_size_heap__   = 0x80000;

/**** End of ICF editor section. ###ICF###*/

 define memory mem with size = 4G;

define region ROM_region   = mem:[from __ICFEDIT_region_ROM_start__   to __ICFEDIT_region_ROM_end__];

define region RAM_region   = mem:[from __ICFEDIT_region_RAM_start__   to __ICFEDIT_region_RAM_end__];

define region EXT_SRAM_region   = mem:[from __ICFEDIT_region_EXT_SRAM_start__   to __ICFEDIT_region_EXT_SRAM_end__];

 define block CSTACK    with alignment = 8, size = __ICFEDIT_size_cstack__   { };

define block HEAP      with alignment = 8, size = __ICFEDIT_size_heap__     { };

 initialize by copy { readwrite };

do not initialize  { section .noinit };

 place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };

place in ROM_region   { readonly };

place in RAM_region   { readwrite, block CSTACK };

place in EXT_SRAM_region   { block HEAP };

编译 /GUI生产Library,然后在工程中引用。

在linker中使用自定义icf,以及 /GUI的<.a>格式lib。
IAR->Option->Linker->Library->Additional libraries:$PROJ_DIR$\Debug\Exe\ GUI_Lib.a

/GUI编译生成library。

基本的设置就不说了,比方说LCDConf.h,GUITo hConf.h,GUIConf.h。需要注意的是,当使用GUI_SUPPORT_MEMDEV时,使用的内存量增加,故需要适度的将#define GUI_ALLOC_SIZE  64*1024扩大到够用为止,以防止stack溢出。

#define HEAPBASE    ((unsigned   char*)0x64000000)外部SRAM在FSMC的blankX,量体裁衣。

由于使用外部SRAM作为heap,GUI_ALLOC的时候,修改

将原文件中的:

GUI_MEM_ALLOC GUI_HEAP GUI_Heap;

GUI_MEM_ALLOC tBlock aBlock[GUI_MAXBLOCKS];

修改为:

GUI_MEM_ALLOC GUI_HEAP *GUI_Heap;

GUI_MEM_ALLOC tBlock *aBlock;

在函数初始化时修改如下:

void GUI_ALLOC_Init(void) {

  GUI_Heap = malloc(GUI_ALLOC_SIZE);

  aBlock = malloc(GUI_MAXBLOCKS * sizeof(tBlock));

  memset(HEAPBASE,0,GUI_ALLOC_SIZE+GUI_MAXBLOCKS * sizeof(tBlock));

将malloc申请到的内存初始化一下,如果工程函数中没有初始化外部RAM的数据,GUI分配不到内存,LCD无法显示。

关键字:STM32F10x  GUI  初始化设置 引用地址:基于STM32F10x的uC/GUI初始化设置

上一篇:at91sam9261-ubifs成功移植
下一篇:2440test中按键的分析

推荐阅读最新更新时间:2024-03-16 15:14

fatfs文件系统移植到STM32F10x
//文件系统与SD卡驱动接口文件diskio.c #include diskio.h #include ffconf.h #include #include MMC_SD.h DSTATUS disk_initialize ( BYTE drv ) { int Status; switch (drv) { case 0 : // Status = MSD0_Init(); Status = SD_Init(); if(Status==0){ return RES_OK; }else{ return STA_NOINIT; } case 1
[单片机]
UC3842构成的开关电源电路
UC3842构成的开关电源电路 由UC3842构成的开关电源电路如图6所示,T为高频变压器。刚开机时,220V交流电先通过PNF滤掉射频干扰,再经过整流滤波获得约+300V直流电压,然后经R2降压后向UC3842提供+16V启动电压。R1是限流电阻,C1为滤波电容。正常工作后,自馈线圈N2上的高频电压经过VD1、C1整流滤波,就作为UC3842的正常工作电压。R5、C4用以改善内部误差放大器的频率响应,R1是斜坡补偿电阻。开关频率 。C5为消噪电容,R10是过流检测电阻,R7是VMOS开关功率管的栅极限流电阻。由C8、VD1、R11、VD2、C9构成两级吸收回路,用于吸收尖峰电压。VD1和VD3选用恢复二极管FR305。VD
[电源管理]
<font color='red'>UC</font>3842构成的开关电源电路
基于UC1845的多路输出双管反激开关电源方案
引言 随着器件、工艺水平的飞速发展,开关型功率变换器已发展成高效、轻型的直流电源,空间飞行器(星、箭、船等)DC/DC变换器(又称二次电源)也采用该项技术。 主要原因是卫星电子设备对电源的效率、重量、体积和可靠性的要求越来越高,而传统的线性电源方案几乎无法满足飞行器系统的需要。在各种类型的DC/DC变换器中,PWM型DC/DC变换器因结构种类多,技术领先,便于实现,已经得到广泛应用。 在航天应用领域开关电源的多种拓扑中,可用于100V高压母线输入多路输出的开关电源,大多数采用的是两级式变换器,如Buck+推挽两级式变换器,先通过Buck电路将母线电压降压,这样母线电压要经过二次调整,使电压调整率降低;再从器件数量上来说,两级
[电源管理]
基于<font color='red'>UC</font>1845的多路输出双管反激开关电源方案
STM32F10x 利用环形缓冲区的串口驱动程序
这次讲讲利用串口收发中断来进行串口通讯。STM32 上为每个串口分配了一个中断。也就是说无论是发送完成还是收到数据或是数据溢出都产生同一个中断。程序需在中断处理函数中读取状态寄存器(USART_SR)来判断当前的是什么中断。下面的中断映像图给出了这些中断源是如何汇合成最终的中断信号的。图中也给出了如何控制每一个单独的中断源是否起作用。 另外,Cortex-M3 内核中还有个NVIC,可以控制这里的中断信号是否触发中断处理函数的执行,还有这些外部中断的级别。关于NVIC 可以参考《ARM CortexM3 权威指南》,里面讲解的非常详细。 简单的说,为了开启中断,我们需要如下的代码: NVIC_InitTypeDef N
[单片机]
<font color='red'>STM32F10x</font> 利用环形缓冲区的串口驱动程序
M16C62在uC/OS-II嵌入式系统中的应用
  前言   随着微电子技术和网络的发展,人们对网络的认识日益深入。网络终端产品也越来越受到人们的关注,嵌入式操作系统的应用也得到了前所未有的发展,人们对嵌入式的研究也有了长足的进步。基于某个操作系统的实时、多任务系统的设计合应用成为单片机应用的新的发展趋势。   uC/OS是一个公开源代码的嵌入式操作系统,uC/OS-II是由uC/OS V1.1版升级而来,在原来版本的基础上,uC/OS-II有了许多新功能,如:内存管理;在任务建立、删除、任务切换、时钟节拍切换处理过程中,允许用户调用自定义的函数;支持任务控制块(TCB)功能扩展;能效验各堆栈使用情况;以及其它一些新功能【2】。M16C62单片机是三菱公司在90年代末推
[嵌入式]
基于uITRON操作系统的嵌入式GUI设计
随着嵌入式系统技术的不断发展,各类嵌入式应用对人机交互界面的要求也越来越高,这就使得对嵌入式图形用户界面的需求越来越迫切。与一般系统上的图形用户界面相比,嵌入式系统图形用户界面要求轻型、占用资源少、高性能、高可靠性、可配置等特点。   本设计是在东南大学国家专用集成电路系统工程技术研究中心自主研发的,并在遵循uITRON 3.0标准的RTOS-ASIX OS基础上设计出一套适合于手持设备、仪器仪表等应用的图形用户界面——ASIX Window。该图形用户界面采用面向对象的设计思想,基于消息循环和事件驱动机制,构建了比较完整的窗口系统,为用户提供了类Win32 API的用户编程接口。考虑到一般嵌入式应用的屏幕较小,以及嵌入式系统处理器
[应用]
基于嵌入式图形系统μc/GUI的应用研究
在任何一款嵌入式操作系统中都需要定时器的心脏跳动作用,支持OS的μc/GUI可以通过定时器的设置达到嵌入式操作系统和图形系统的实时和同步操作。在GUI_X_uCos.c中通过μc/os中的延时程序同μc/GUI挂接实现整合。 图2 μc/GUI软件结构图 (5) 经过移植之后,GUI应用程序开发通过μc/GUI而变得非常容易,在调用GUI_Init()后,用户可以根据需要正确配制μc/GUI后,可使用其强大的库函数和丰富的GUI资源进行编程。在GUI编程过程中,可以打开抗锯齿功能减小图形失真,得到高质量的图形和字体效果。采用内存设备能有效克服闪烁现象,获得更快的显示速度,但它和抗锯齿功能一样需要额外的内
[应用]
电流控制型脉宽调制器UC3842在开关电源中的应用
引言 开关稳压电源被誉为“新型高效节能电源”,它代表着稳压电源的发展方向。由于内部器件工作在高频开关状态,因此本身消耗的能量极低,电源效率可以达到80%以上,比串连调整线性稳压电源的效率提高近一倍。随着电源技术的飞速发展,开关稳压电源正朝着小型化、高频化、集成化的方向发展,高效率的开关稳压电源已得到越来越广泛的应用。本文首先概述开关稳压电源的基本工作原理,接着介绍电流型脉宽调制器UC3842芯片,着重论述了UC3842在开关稳压电源中的应用,并以一个实际应用实例分析了电源电路的构成和参数计算。 开关电源的基本工作原理 相对于线性稳压电源功耗较大的缺点,开关电源的效率可达90%以上,而且造价低、体积小。开关电源的工作原理如图1所示
[电源管理]
电流控制型脉宽调制器<font color='red'>UC</font>3842在开关电源中的应用
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
更多每日新闻
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved