从源码编译安装msp430-gcc 4.7.2

发布者:信息巫师最新更新时间:2020-01-31 来源: eefocus关键字:源码  编译安装  msp430-gcc  7 手机看文章 扫描二维码
随时随地手机看文章

背景

遇到的问题

最近在做关于Contiki操作系统在TelosB节点上的一些实验,但是在编译一些Contiki样例的时候遇到了".text"和".rodata"段出现重合无法成功编译的情况,查阅资料显示需要更新Instant Contiki中自带的msp430-gcc来解决这个问题。

本文将我的操作过程做一个记录,希望对读者有所帮助。


硬软件环境

Instant Contiki3.0(Ubuntu 14.04LTS)


1. 安装编译安装必需的应用

sudo apt-get install patch ncurses-dev build-essential bison flex libgmp3-dev libmpfr-dev libmpc-dev texinfo zlib1g-dev


外网上也有不少关于重新编译msp430-gcc的教程,但是他们的要求都是TEXINFO版本<5,但是上一步直接安装的texinfo的版本>5,需要卸载后从源码安装其4.xx版本:


TEXINFO

Remove Latest TEXINFO package using Synaptics.

ubuntu应该直接用apt卸载即可


从源码安装TEXINFO-4.13

wget http://ftp.gnu.org/gnu/texinfo/texinfo-4.13.tar.gz


解压源码:


gzip -dc < texinfo-4.13.tar.gz | tar -xf -

cd texinfo-4.13


Configure, build and install:


./configure

make

sudo make install


删除旧版msp430-gcc

仍然是使用apt卸载,不再赘述


编译安装新版msp430-gcc

准备工作

INSTALL_PREFIX="${HOME}/mspgcc-4.7.2"

echo The installatoin prefix:$INSTALL_PREFIX


创建放置源码的文件夹


# Switch to the tmp directory

mkdir tmp 

cd tmp


下载所需源码


wget http://sourceforge.net/projects/mspgcc/files/mspgcc/DEVEL-4.7.x/mspgcc-20120911.tar.bz2

wget http://sourceforge.net/projects/mspgcc/files/msp430mcu/msp430mcu-20120716.tar.bz2

wget http://sourceforge.net/projects/mspgcc/files/msp430-libc/msp430-libc-20120716.tar.bz2

wget http://ftpmirror.gnu.org/binutils/binutils-2.22.tar.bz2

wget http://mirror.ibcp.fr/pub/gnu/gcc/gcc-4.7.2/gcc-4.7.2.tar.bz2

wget http://sourceforge.net/p/mspgcc/bugs/352/attachment/0001-SF-352-Bad-code-generated-pushing-a20-from-stack.patch

wget http://sourceforge.net/p/mspgcc/bugs/_discuss/thread/fd929b9e/db43/attachment/0001-SF-357-Shift-operations-may-produce-incorrect-result.patch


# Unpacking the tars 

tar xvfj binutils-2.22.tar.bz2

tar xvfj gcc-4.7.2.tar.bz2

tar xvfj mspgcc-20120911.tar.bz2

tar xvfj msp430mcu-20120716.tar.bz2

tar xvfj msp430-libc-20120716.tar.bz2 


将msp430相关的patch合并到binutils和gcc中,编译并安装

# 1) Incorporating the changes contained in the patch delievered in mspgcc-20120911

cd binutils-2.22

patch -p1<../mspgcc-20120911/msp430-binutils-2.22-20120911.patch

cd ..


# 2) Incorporating the changes contained in the patch delievered in mspgcc-20120911

cd gcc-4.7.2

patch --force -p1<../mspgcc-20120911/msp430-gcc-4.7.0-20120911.patch

patch --force -p1<../0001-SF-352-Bad-code-generated-pushing-a20-from-stack.patch

patch --force -p1<../0001-SF-357-Shift-operations-may-produce-incorrect-result.patch

cd ..

# 3) Creating new directories

mkdir binutils-2.22-msp430

mkdir gcc-4.7.2-msp430


安装patch过的binutil


# 4) installing binutils in INSTALL_PREFIX

cd binutils-2.22-msp430/

../binutils-2.22/configure --target=msp430 --program-prefix="msp430-" --prefix=$INSTALL_PREFIX

make

make install


安装patch过的gcc


# 5) Download the prerequisites

cd ../gcc-4.7.2

./contrib/download_prerequisites


# 6) compiling gcc-4.7.0 in INSTALL_PREFIX

cd ../gcc-4.7.2-msp430

../gcc-4.7.2/configure --target=msp430 --enable-languages=c --program-prefix="msp430-" --prefix=$INSTALL_PREFIX

make

make install


编译和安装msp430所需的硬件描述文件与库文件

# 7) compiping msp430mcu in INSTALL_PREFIX

cd ../msp430mcu-20120716

MSP430MCU_ROOT=`pwd` ./scripts/install.sh ${INSTALL_PREFIX}/


# 8) compiling the msp430 lib in INSTALL_PREFIX

cd ../msp430-libc-20120716

cd src

PATH=${INSTALL_PREFIX}/bin:$PATH

make

make PREFIX=$INSTALL_PREFIX install


检查是否安装完毕

使用命令查看msp430-gcc的版本,如果是4.7.2则完成


msp430-gcc --version


references

Blog1

Blog2

Github1


关键字:源码  编译安装  msp430-gcc  7 引用地址:从源码编译安装msp430-gcc 4.7.2

上一篇:MSP430的BSL下载经验
下一篇:初学MSP430F5529时钟以及FLL配置

推荐阅读最新更新时间:2024-11-06 20:27

基于STM32F4系列芯片和STM32CubeF4 HAL库组织和添加用户代码
我们在MCU的嵌入式应用开发过程中,有时需要做些较大量的数据传输和适时处理,此时使用DMA的双缓冲模式可能是个不错的选择。这样既可以保障数据的连续、流畅传输,又能保障数据的及时处理【包括数据更新】,同时又能减轻CPU的负荷。 常有人想使用STM32 DMA的双缓冲模式,但又觉得实现起来似乎有点困难,也不太容易找到现存的例程。我这里就基于STM32F4芯片及Cube库简单地演示下实现过程。 STM32的DMA硬件双缓冲模式,只支持从外设到内存或从内存到外设两种应用场景,且工作在循环模式。内存到内存是不支持双缓冲模式的,当然它也不支持DMA循环模式。【下图截取于STM32F4的参考手册】 关于STM32 DMA双缓冲模式实
[单片机]
基于STM32F<font color='red'>4</font>系列芯片和STM32CubeF<font color='red'>4</font> HAL库组织和添加用户代码
7. I/O并行口直接驱动LED显示
1. 实验任务 如图13所示,利用AT89S51单片机的P0端口的P0.0-P0.7连接到一个共阴数码管的a-h的笔段上,数码管的公共端接地。在数码管上循环显示0-9数字,时间间隔0.2秒。 2. 电路原理图 图4.7.1 3. 系统板上硬件连线 把 单片机系统 区域中的P0.0/AD0-P0.7/AD7端口用8芯排线连接到 四路静态数码显示模块 区域中的任一个数码管的a-h端口上;要求:P0.0/AD0与a相连,P0.1/AD1与b相连,P0.2/AD2与c相连, ,P0.7/AD7与h相连。 4. 程序设计内容 (1. LED数码显示原理 七段LED显示器内部由七个条形发
[单片机]
<font color='red'>7</font>. I/O并行口直接驱动LED显示
高通反垄断将宣判,4G芯片降价恐更激烈
中国发改委对于高通的反垄断案将宣判,除了过去收取权利金恐遭降价外,高通对于中国品牌厂中兴、华为等收费方式,以及对苹果的收费方式亦将改变,而联发科(2454)明年将推出的六模晶片以及来自其他对手的竞争,已迫使高通自本月起就针对CDMA晶片降价,明年4G市场上演价格杀戮血战恐怕只会更激烈。 根据中国发改委反垄断调查,其一认定“整机作为计算许可费基础”,是高通有别于其他行业独特的专利收取方式,终端厂商不仅要向高通支付一笔晶片价格,还需要支付一笔“整机计费”的授权许可费,让许多终端厂商希望高通改变收费方式;据悉,中国发改委将做出最后判决,包括对高通罚款、专利费调整、取消专利反授权三部分。 据悉,自本月开始,中国电信1299元人民币以下
[手机便携]
TCL通讯发力4G时代剑指全球前三
    2013年,对TCL通讯(02618.HK)来说,是一个极其重要的拐点,其不仅打了一场漂亮的翻身仗,还顺势登上了4G时代的新航船。 2014年1月7日至10日,在美国拉斯维加斯举办的第47届国际消费电子展(CES)上,TCL通讯最新4G手机等产品大放异彩,其急速八核智能手机idol X +更是获得本届CES展“最佳智能手机”称号,吸引了行业各方的关注。 在此之前的12月26日,“国际国内两手抓”的TCL通讯落下了2013年的“最后一颗棋”:在北京召开“Xin力量,大未来”产品发布会,正式推出idol X +及可穿戴设备Boom Band智能手环。“idol X +”手机采用了联发科八核处理器MT6592,号称全球最快真八核智
[手机便携]
韩媒:中国将于7月批准LGD广州OLED投资案
韩媒《Korea Times》6月19日报道称,据知情人士透露,中国政府将于7月批准LG Display(以下简称“LGD”)在中国广州建设OLED面板厂的投资案。   报道指出,中国政府会在7月份批准该投资案,是因为LGD与中国政府针对双方所在意的关键问题达成了协议。   “这一批准是‘有条件的’,因为中国希望通过与LGD的密切合作,帮助其本土显示器企业保持竞争力。”一位熟悉此事的高管表示,LGD在广州建设OLED面板厂投资案审批延迟主要是由于“程序问题”,中国政府从未对LGD提出技术转移的要求。   “批准将在‘可预见的未来’到来。”LG Display发言人表示。   LGD原本计划投资7.4万亿韩元(约440亿人民币)在
[家用电子]
单核性能拼i7 苹果A11Geekbench跑分放出
之前我们曾报道苹果A11的跑分做到了“默秒全”,其性能秒杀全部安卓阵营旗舰处理器,甚至超过了AMD的新APU,可谓是大杀四方。 近日,Geekbench正式将苹果A11Bionic处理器加入iOS跑分排行榜,其强大的性能把iPadPro上使用的A10XFusion也给秒了。 从成绩来看,A11Bionic处理器的单核成绩最高达到了4195分,多核心成绩超过10005分,相比A10几乎翻了一倍!同安卓阵营最强的Exynos8895相比,其单核心性能领先113%,多核心成绩领先55%。 这还没完,横向对比PC平台的处理器,A11(2.5GHz)单核心性能甚至超越了Ryzen51600X(3.6GHz),这也侧面证明了为什么
[手机便携]
市值超联发科英特尔总和的高通将“死”在4G时代?
    “随着中国LTE网络的部署,高通有机会销售更多智能手机芯片并获得更多专利授权费。预计在下一个五年中,公司年度营收和每股利润都能有两位数的增幅。”高通CEO保罗·雅克布说。   目前,高通是全球唯一一家能提供完整2G/3G/4G手机芯片解决方案的企业,拥有众多核心专利,主要利润则来自于专利授权。   然而保罗·雅克布的“如意算盘”打得为时尚早了。   就在国内4G牌照即将发布之时,11月25日,高通公司发表声明称,发改委已经启动了对公司的反垄断调查。有消息称,高通在北京和上海两地的公司,同时被发改委进驻调查,并带走了一些市场、财务等资料。   在4G大幕即将拉开之时,高通便遭遇了“下马威”,被调查消息传出当日,高通股价下跌了2
[手机便携]
2.汇编代码的简单实现
使用汇编的原因很简单,就是汇编代码的高效。在机器启动的时候,利用汇编的高效,对硬件进行初始化,为加载内核,提供条件。 目前常用的ARM汇编指令有两种: *ARM标准汇编:适用于ARM公司的汇编器,适合在Windows平台下使用。 *GNU汇编:使用与GNU交叉编译工具链中的汇编器,适合于Linux平台开发。 3.汇编程序框架:注意下面的操作环境是Redhat 6.4 + eclipse C/C++ +CDT插件。 汇编代码的基本框架 汇编用到的地方,启动代码,效率要求高效的地方。 上面是启动代码的框架。 下面搭建框架: start.S: .text .global _start _start: mov r2,#2
[单片机]
<font color='red'>2</font>.汇编代码的简单实现
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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