5902|18

17

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

LaunchPad Flash不够用 [复制链接]

前段时间,同学让用LaunchPad 帮做个毕设,好不容易克服了管脚不够用(毕设需要1602做显示,Sht11采集温湿度,还要控制电机,可只有P1   8个口......)

现在遇到一个很现实的问题就是,程序太大了,下进去不够用了呐,哪个高人遇到过,肯给小弟指点一二,定不胜感激呐.....

对了  贴出它的cmd文件  本来想修改它了  可是改好了能编译了可是又下不了程序了 郁闷....  求指导啊......

/******************************************************************************/
/* lnk_msp430g2231.cmd - LINKER COMMAND FILE FOR LINKING MSP430G2231 PROGRAMS     */
/*                                                                            */
/*   Usage:  lnk430 <obj files...>    -o <out file> -m <map file> lnk.cmd     */
/*           cl430  <src files...> -z -o <out file> -m <map file> lnk.cmd     */
/*                                                                            */
/*----------------------------------------------------------------------------*/
/* These linker options are for command line linking only.  For IDE linking,  */
/* you should set your linker options in Project Properties                   */
/* -c                                               LINK USING C CONVENTIONS  */
/* -stack  0x0100                                   SOFTWARE STACK SIZE       */
/* -heap   0x0100                                   HEAP AREA SIZE            */
/*                                                                            */
/*----------------------------------------------------------------------------*/


/****************************************************************************/
/* SPECIFY THE SYSTEM MEMORY MAP                                            */
/****************************************************************************/

MEMORY
{
    SFR                     : origin = 0x0000, length = 0x0010
    PERIPHERALS_8BIT        : origin = 0x0010, length = 0x00F0
    PERIPHERALS_16BIT       : origin = 0x0100, length = 0x0100
    RAM                     : origin = 0x0200, length = 0x0080
    INFOA                   : origin = 0x10C0, length = 0x0040
    INFOB                   : origin = 0x1080, length = 0x0040
    INFOC                   : origin = 0x1040, length = 0x0040
    INFOD                   : origin = 0x1000, length = 0x0040
    FLASH                   : origin = 0xF800, length = 0x07E0
    INT00                   : origin = 0xFFE0, length = 0x0002
    INT01                   : origin = 0xFFE2, length = 0x0002
    INT02                   : origin = 0xFFE4, length = 0x0002
    INT03                   : origin = 0xFFE6, length = 0x0002
    INT04                   : origin = 0xFFE8, length = 0x0002
    INT05                   : origin = 0xFFEA, length = 0x0002
    INT06                   : origin = 0xFFEC, length = 0x0002
    INT07                   : origin = 0xFFEE, length = 0x0002
    INT08                   : origin = 0xFFF0, length = 0x0002
    INT09                   : origin = 0xFFF2, length = 0x0002
    INT10                   : origin = 0xFFF4, length = 0x0002
    INT11                   : origin = 0xFFF6, length = 0x0002
    INT12                   : origin = 0xFFF8, length = 0x0002
    INT13                   : origin = 0xFFFA, length = 0x0002
    INT14                   : origin = 0xFFFC, length = 0x0002
    RESET                   : origin = 0xFFFE, length = 0x0002
}

/****************************************************************************/
/* SPECIFY THE SECTIONS ALLOCATION INTO MEMORY                              */
/****************************************************************************/

SECTIONS
{
    .bss       : {} > RAM                /* GLOBAL & STATIC VARS              */
    .sysmem    : {} > RAM                /* DYNAMIC MEMORY ALLOCATION AREA    */
    .stack     : {} > RAM (HIGH)         /* SOFTWARE SYSTEM STACK             */

    .text      : {} > FLASH              /* CODE                              */
    .cinit     : {} > FLASH              /* INITIALIZATION TABLES             */
    .const     : {} > FLASH              /* CONSTANT DATA                     */
    .cio       : {} > RAM                /* C I/O BUFFER                      */

    .pinit     : {} > FLASH              /* C++ CONSTRUCTOR TABLES            */

    .infoA     : {} > INFOA              /* MSP430 INFO FLASH MEMORY SEGMENTS */
    .infoB     : {} > INFOB
    .infoC     : {} > INFOC
    .infoD     : {} > INFOD
    .int00   : {} > INT00                /* MSP430 INTERRUPT VECTORS          */
    .int01   : {} > INT01
    .int02   : {} > INT02
    .int03   : {} > INT03
    .int04   : {} > INT04
    .int05   : {} > INT05
    .int06   : {} > INT06
    .int07   : {} > INT07
    .int08   : {} > INT08
    .int09   : {} > INT09
    .int10   : {} > INT10
    .int11   : {} > INT11
    .int12   : {} > INT12
    .int13   : {} > INT13
    .int14   : {} > INT14
    .reset   : {} > RESET              /* MSP430 RESET VECTOR               */
}

/****************************************************************************/
/* INCLUDE PERIPHERALS MEMORY MAP                                           */
/****************************************************************************/

-l msp430g2231.cmd

最新回复

楼主你怎么解决I/O口不够的??  详情 回复 发表于 2012-7-24 18:15
 
点赞 关注

回复
举报

5276

帖子

5

TA的资源

裸片初长成(中级)

沙发
 
换大点的呗
 
 

回复

5276

帖子

5

TA的资源

裸片初长成(中级)

板凳
 
没仔细看您贴的,也记不得了
是否贴出其它的编译结果文档能够一目了然? 如果相差不多,可以进一步优化代码,编译设置也可以优化,有时候编译结果相差还是可观的吧,还可以将info区域用于放置代码
[ 本帖最后由 wangfuchong 于 2012-2-16 20:54 编辑 ]
 
 
 

回复

17

帖子

0

TA的资源

一粒金砂(中级)

4
 

回复 板凳 wangfuchong 的帖子

info设置是怎么做的呢?
上面infoa,b,c,d都可以不要么?  求大神指导啊~
 
 
 

回复

5276

帖子

5

TA的资源

裸片初长成(中级)

5
 
nfob,c,d三个都可以用来存贮代码,一般使用infoA一定要小心,因为往往这里存储出厂时设置的校准数据,所以,一般情况下避免使用。

具体设置可能和开发环境软件有关系,例如IAR和CCS具体语句有点区别,你自己查一下

例如下面语句好像是CCS的
#pragma CODE_SECTION(FlashWrite, ".infoC")
 
 
 

回复

17

帖子

0

TA的资源

一粒金砂(中级)

6
 

回复 5楼 wangfuchong 的帖子

嗯  好的  我去试试
这个不可以直接对cmd文件修改么?
例如
INFOA                   : origin = 0x10C0, length = 0x0040
INFOB                   : origin = 0x1080, length = 0x0040
INFOC                   : origin = 0x1040, length = 0x0040
INFOD                   : origin = 0x1000, length = 0x0040
FLASH                   : origin = 0xF800, length = 0x07E0

改怎么样修改呢?
原来学DSP的时候这点都没太搞清楚...
 
 
 

回复

17

帖子

0

TA的资源

一粒金砂(中级)

7
 

回复 5楼 wangfuchong 的帖子

还有 #pragma CODE_SECTION(FlashWrite, ".infoC") 这个语句是在哪里查的呢?
我这方面比较小白 具体怎么做还不太明白呐。
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(高级)

8
 
编译器优化开到最高了嘛?
 
 
 

回复

17

帖子

0

TA的资源

一粒金砂(中级)

9
 

回复 8楼 modernthink 的帖子

额....
这个在哪里弄呢  以前都没改过那些设置的...
 
 
 

回复

17

帖子

0

TA的资源

一粒金砂(中级)

10
 

回复 8楼 modernthink 的帖子

刚找到了  
开到 Level 4了  但flash还是不够呐....
 
 
 

回复

1万

帖子

141

TA的资源

版主

11
 
楼主贴出的代码不至于超出MCU的FLASH存储空间,建议还是仔细去看看相关的mcu器件手册和开发环境的说明文档,编译后的代码大小是可以获知的。
 
 
 

回复

17

帖子

0

TA的资源

一粒金砂(中级)

12
 

回复 11楼 chunyang 的帖子

额....
没有了  贴的那个是它的cmd文件了  
编译后提示错误  超出flash存储空间了
刚又精简了一下代码  现在可以了  谢啦~
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(高级)

13
 

回复 12楼 renzhejiajia 的帖子

还有一点,如果优化等级开到最高,代码要注意测试。经常碰到优化没有开到最高是逻辑都是正常的,开了后,就出错了。而且只是编译无法发现的。
 
 
 

回复

17

帖子

0

TA的资源

一粒金砂(中级)

14
 

回复 13楼 modernthink 的帖子

恩呐  反复debug过了
谢咯~
 
 
 

回复

5276

帖子

5

TA的资源

裸片初长成(中级)

15
 
首先看看编译出来代码多少字节,在编译结果相关文档中会看到的
其它的问题,还是花时间看看开发环境相关的文档吧,不过英文的看起来可能比较费劲,也没有实际的细细说明。当然网络上查找资料也难找好像。我也记不住,也还没掌握,主要是没时间也没时间多回答。
论坛上要是有这方面的深入的资料就好了。
下载那么多,中文的就没多少有多少用的
 
 
 

回复

17

帖子

0

TA的资源

一粒金砂(中级)

16
 

回复 15楼 wangfuchong 的帖子

有感触呐   猛一看觉得资料还蛮多的  
可是一筛选就不剩多少了  嘿嘿  谢啦  麻烦你这么长时间~
 
 
 

回复

7219

帖子

192

TA的资源

五彩晶圆(高级)

17
 

回复 15楼 wangfuchong 的帖子

王总讲的非常好 学习
 
 
 

回复

424

帖子

0

TA的资源

纯净的硅(高级)

18
 
去选一个大点的430,比如2553,Flash16K,足够用了!
可以去TI网站上申请样品
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(中级)

19
 
楼主你怎么解决I/O口不够的??
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表