精华内容
下载资源
问答
  • 熟悉在纯windows下的交叉编译环境,了解如何下载BIN格式的程序文件到单片机。 实验2: 一个简单的交叉编译与程序下载过程 环境搭建(以我的平台为例): 安装win7 32位,具体教程可百度 安装make和gcc-arm-...

    如有不详细的描述、错误或疑问,欢迎留言!!!

    基于STM32从零写操作系统系列---前言与目录

    目的:

    熟悉在纯windows下的交叉编译环境,了解如何下载BIN格式的程序文件到单片机。

    实验2:

    一个简单的交叉编译与程序下载过程

    环境搭建(以我的平台为例):

     

    1. 安装win7 32位,具体教程可百度
    2. 安装make和gcc-arm-none-eabi交叉编译工具,具体教程可百度
    3. 安装ST-Link Utility软件
    4. 在windows系统上安装编辑器,如notepad++

    make,gcc-arm-none-eabi,ST-Link Utility软件已在百度云分享:

    链接:https://pan.baidu.com/s/1DlzYMo8oZsnF9ammJuuZoQ 
    提取码:dc5h 

    具体实验过程:

    1.在winows系统中新建一个文件夹,用作项目文件夹

    2.打开编辑器(我的是notepad++),创建文件boot1.s。这段代码就实现了死循环,并没有什么实际用途,主要是练习如何下载BIN格式文件到单片机,代码如下:

    3.创建文件Makefile,这是编译用的工程文件,用于编译boot1.s文件。划红线的地方与在linux系统中有所不同。Makefile教程,可以网上搜索或阅读Makefile文档。代码如下:

    4.创建链接脚本ldboot1.ld。

    5.在同一目录下,一共创建了3个文件如下

    6.打开命令行窗口

    7.通过在命令行中输入相关命令(百度可以查找),进入步骤1中创建的文件夹。

    8.在当前命令行中输入make,编译代码,将会生成.bin文件

     9.打开ST-Link Utility软件,点击设置按钮具体设置如图1,连接单片机(单片机与电脑需要连接好和驱动需要安装好,打开单片机电源)。点击ok按钮后,如图2所示的信息。

    图1

    图2

    10.下载bin文件到单片机,点击Target->Program & Verify,出现如下图的对话框。注意start address为0x08000000,即为flash的地址。确认File path是否是需要下载的文件。点击Start按钮。

     11.下载成功,如图

    12.为了验证使用ST-Link Utility软件下载bin格式文件到stm32单片机后,程序是否可以运行,在本系列的第4篇文章将做一个点亮LED的实验。

    展开全文
  • 之前我没有试过 C++ 之外的交叉编译环境,以前在用 C++ 开发游戏的时候,会把逻辑代码用 Android Studio 编译出安卓版本,以及使用 iOS 的 toolchain 编译成 iOS 的版本。假如没有对应的 toolchain 的话,我可能也就...

    之前我没有试过 C++ 之外的交叉编译环境,以前在用 C++ 开发游戏的时候,会把逻辑代码用 Android Studio 编译出安卓版本,以及使用 iOS 的 toolchain 编译成 iOS 的版本。

    假如没有对应的 toolchain 的话,我可能也就束手无策了,我还没折腾过用 https://github.com/richfelker/musl-cross-make 这个工具进行交叉编译,不过今天在学 Rust 的时候,发现交叉编译 Rust 程序的步骤非常简单,就先记在这里。

    这里我只用 macOS 来示范,因为今天只在这个平台上试过。

    安装链接器

    musl-cross 似乎是在链接时候起作用的(不知道我这个说法对不对)。

    首先通过 brew 安装 musl-cross 工具,其中 musl-cross 是用来专门编译到 linux 的工具链,而 mingw-w64 是用来编译到 windows 的工具链。根据你的目标平台自己装一个就好。

    $brew install FiloSottile/musl-cross/musl-cross

    $brew install mingw-w64

    我装的是 musl-cross,装好后到 ~/.cargo/config 文件中添加上:

    [target.x86_64-unknown-linux-musl]

    linker = "x86_64-linux-musl-gcc"

    注意一下等于号后面跟的是 x86_64-linux-musl-gcc。

    rustup 配置

    rustup 是 Rust 的包管理工具,用它来配置工具链可以很省心。

    运行 rustup target list 你可以看到很多的目标平台。

    $ rustup target list

    aarch64-apple-ios

    aarch64-linux-android

    aarch64-unknown-fuchsia

    aarch64-unknown-linux-gnu

    aarch64-unknown-linux-musl

    arm-linux-androideabi

    arm-unknown-linux-gnueabi

    arm-unknown-linux-gnueabihf

    arm-unknown-linux-musleabi

    arm-unknown-linux-musleabihf

    armv5te-unknown-linux-gnueabi

    armv5te-unknown-linux-musleabi

    armv7-apple-ios

    armv7-linux-androideabi

    armv7-unknown-linux-gnueabihf

    armv7-unknown-linux-musleabihf

    armv7s-apple-ios

    asmjs-unknown-emscripten

    i386-apple-ios

    i586-pc-windows-msvc

    i586-unknown-linux-gnu

    i586-unknown-linux-musl

    i686-apple-darwin

    i686-linux-android

    i686-pc-windows-gnu

    i686-pc-windows-msvc

    i686-unknown-freebsd

    i686-unknown-linux-gnu

    i686-unknown-linux-musl

    mips-unknown-linux-gnu

    mips-unknown-linux-musl

    mips64-unknown-linux-gnuabi64

    mips64el-unknown-linux-gnuabi64

    mipsel-unknown-linux-gnu

    mipsel-unknown-linux-musl

    powerpc-unknown-linux-gnu

    powerpc64-unknown-linux-gnu

    powerpc64le-unknown-linux-gnu

    s390x-unknown-linux-gnu

    sparc64-unknown-linux-gnu

    sparcv9-sun-solaris

    thumbv6m-none-eabi

    thumbv7em-none-eabi

    thumbv7em-none-eabihf

    thumbv7m-none-eabi

    wasm32-unknown-emscripten

    wasm32-unknown-unknown

    x86_64-apple-darwin (default)

    x86_64-apple-ios

    x86_64-linux-android

    x86_64-pc-windows-gnu

    x86_64-pc-windows-msvc

    x86_64-rumprun-netbsd

    x86_64-sun-solaris

    x86_64-unknown-cloudabi

    x86_64-unknown-freebsd

    x86_64-unknown-fuchsia

    x86_64-unknown-linux-gnu

    x86_64-unknown-linux-gnux32

    x86_64-unknown-linux-musl

    x86_64-unknown-netbsd

    x86_64-unknown-redox

    我们之前只设置了 target.x86_64-unknown-linux-musl,所以现在也只装对应的这个目标平台相关工具:

    $ rustup target add x86_64-unknown-linux-musl

    这一步如果很慢可以在你的 .bashrc 或者 .zshrc 中添加这一行,中科大的源加速很靠谱:

    exportRUSTUP_DIST_SERVER=https://mirrors.ustc.edu.cn/rust-static

    编译

    接着只要在运行 build 命令时指定 target 就可以了。

    $ cargo build --target=x86_64-unknown-linux-musl

    接着你可以看到类似这样的文件结构:

    ├── build

    └── target

    └── x86_64-unknown-linux-musl

    └── debug

    ├── build

    ├── deps

    ├── examples

    ├── incremental

    └── native

    找到你对应编译好的可执行文件,扔到你的 linux 机子上跑,就可以了。

    你可以用 file 命令确认一下:

    $ file target/x86_64-unknown-linux-musl/debug/rust-test

    target/x86_64-unknown-linux-musl/debug/rust-test: ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), statically linked, with debug_info, not stripped

    展开全文
  • 至此环境编译环境搭建完毕。 XLSXIO需要minizip,因此必须安装minizip pacman -S mingw-w64-x86_64-minizip 安装成功,但是使用pacman -S minizip 错误:未找到目标:minizip 下面是截取xlsxio官网的一部分:...

    首先安装MSYS2
    从官网下载安装程序,当前最新版:msys2-x86_64_20190524.exe
    http://repo.msys2.org/distrib/x86_64/msys2-x86_64-20190524.exe
    参照官网上的安装说明即可成功安装MSYS2。
    MSYS2更改为国内源:
    C:\msys64\etc\pacman.d目录下有三个文件,C:\msys64为MSYS2的安装目录。
    mirrorlist.msys

    ##
    ## MSYS2 repository mirrorlist
    ##

    ## Primary
    ## msys2.org
    Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/msys/$arch
    Server = http://mirror.bit.edu.cn/msys2/msys/$arch
    Server = http://mirrors.ustc.edu.cn/msys2/msys/$arch/
    Server = http://repo.msys2.org/msys/$arch/
    Server = https://sourceforge.net/projects/msys2/files/REPOS/MSYS2/$arch/
    Server = http://www2.futureware.at/~nickoe/msys2-mirror/msys/$arch/
    Server = https://mirror.yandex.ru/mirrors/msys2/msys/$arch/

    mirrorlist.mingw32

    ##
    ## 32-bit Mingw-w64 repository mirrorlist
    ##

    ## Primary
    ## msys2.org
    Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/i686
    Server = http://mirrors.ustc.edu.cn/msys2/mingw/i686/
    Server = http://mirror.bit.edu.cn/msys2/mingw/i686
    Server = http://repo.msys2.org/mingw/i686/
    Server = https://sourceforge.net/projects/msys2/files/REPOS/MINGW/i686/
    Server = http://www2.futureware.at/~nickoe/msys2-mirror/mingw/i686/
    Server = https://mirror.yandex.ru/mirrors/msys2/mingw/i686/

    mirrorlist.mingw64

    ##
    ## 64-bit Mingw-w64 repository mirrorlist
    ##

    ## Primary
    ## msys2.org
    Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/x86_64/
    Server = http://mirrors.ustc.edu.cn/msys2/mingw/x86_64/
    Server = http://mirror.bit.edu.cn/msys2/mingw/x86_64
    Server = http://repo.msys2.org/mingw/x86_64/
    Server = https://sourceforge.net/projects/msys2/files/REPOS/MINGW/x86_64/
    Server = http://www2.futureware.at/~nickoe/msys2-mirror/mingw/x86_64/
    Server = https://mirror.yandex.ru/mirrors/msys2/mingw/x86_64/

    每个文件前两行,是国内的源。大名鼎鼎,只要做过linux方面工作的,这是不可缺少的。特别是校园网内的用户来说,你的机器都不用能上互联网只要能上互联网就能成功访问所有校园网的源。做ANSYS集群时用到Centos系统用到上面的源,当然地址不同。
    在开始成功安装后在开始菜单里面有MSYS2 64bit菜单,里面有三个子菜单

    MSYS2 MinGW 32-bit
    MSYS2 MinGW 64-bit
    MSYS2 MSYS

    分别代表三种编译方式,MSYS2 MinGW 32-bit只能编译x86程序,MSYS2 MinGW 64-bit能编译x64和x86程序,默认为x64。MSYS编译的程序需要MSYS的动态库。MinGW编译的程序不用额外的动态库支持。
    我们执行MSYS2 MinGW 64-bit。运行窗口和Linux命令行模式终端。试过多个Linux命令好用。但是yum命令不支持。和yum类似的命令是pacman。
    安装包
    pacman -S 包名:例如,执行 pacman -S firefox 将安装 Firefox。你也可以同时安装多个包,
    只需以空格分隔包名即可。
    pacman -Sy 包名:与上面命令不同的是,该命令将在同步包数据库后再执行安装。
    pacman -Sv 包名:在显示一些操作信息后执行安装。
    pacman -U:安装本地包,其扩展名为 pkg.tar.gz。
    pacman -U http://www.example.com/repo/example.pkg.tar.xz 安装一个远程包(不在 pacman 配置的源里面)

    删除包
    pacman -R 包名:该命令将只删除包,保留其全部已经安装的依赖关系
    pacman -Rs 包名:在删除包的同时,删除其所有没有被其他已安装软件包使用的依赖关系
    pacman -Rsc 包名:在删除包的同时,删除所有依赖这个软件包的程序
    pacman -Rd 包名:在删除包时不检查依赖。

    搜索包
    pacman -Ss 关键字:在仓库中搜索含关键字的包。
    pacman -Qs 关键字: 搜索已安装的包。
    pacman -Qi 包名:查看有关包的详尽信息。
    pacman -Ql 包名:列出该包的文件。

    其他用法
    pacman -Sw 包名:只下载包,不安装。
    pacman -Sc:清理未安装的包文件,包文件位于 /var/cache/pacman/pkg/ 目录。
    pacman -Scc:清理所有的缓存文件。

    进入到MINGW64控制台以后,首先执行

    pacman -Syu 更新软甲包
    这里有个小坑,说下我的经历:

    pacman -S gcc
    pacman -S make
    pacman -S cmake

    安装完成后,在我的MinGW64下没有任何文件。说说这里的坑,其实这没有安装到MinGW 64-bit下而是安装到MSYS下了。你要是执行 gcc也能返回但是就不是MinGW 64-bit而是MSYS的了。
    需要往MinGW 64-bit里安装软件需要下面的指令:
    pacman -S mingw-w64-x86_64-gcc

    有了上面的基础就可以了。编译你的项目,看看需要啥就安装然后编译即可。

    下面编译:XLSXIO

    pacman -S mingw-w64-x86_64-gcc
    pacman -S mingw-w64-x86_64-gdb
    pacman -S mingw-w64-x86_64-make
    pacman -S mingw-w64-x86_64-cmake
    pacman -S mingw-w64-x86_64-doxygen

    前面几个都熟悉是开发环境,最后一个工具负责解析编译参数。至此环境编译环境搭建完毕。
    XLSXIO需要minizip,因此必须安装minizip
    pacman -S mingw-w64-x86_64-minizip
    安装成功,但是使用pacman -S minizip 错误:未找到目标:minizip
    下面是截取xlsxio官网的一部分:Building with CMake

    configure by running cmake -G"Unix Makefiles" (or cmake -G"MSYS Makefiles" on Windows) optionally followed by:
    -DCMAKE_INSTALL_PREFIX:PATH=<path> Base path were files will be installed
    -DBUILD_STATIC:BOOL=OFF - Don't build static libraries
    -DBUILD_SHARED:BOOL=OFF - Don't build shared libraries
    -DBUILD_TOOLS:BOOL=OFF - Don't build tools (only libraries)
    -DBUILD_EXAMPLES:BOOL=OFF - Don't build examples
    -DBUILD_EXAMPLES:BOOL=OFF - Don't build examples
    -DWITH_LIBZIP:BOOL=ON - Use libzip instead of Minizip
    -DLIBZIP_DIR:PATH=<path> - Location of libzip library
    -DMINIZIP_DIR:PATH=<path> - Location of Minizip library
    -DWITH_WIDE:BOOL=ON - Also build UTF-16 library (libxlsxio_readw)
    build and install by running make install (or make install/strip to strip symbols)
    我的编译指令:

    cmake -G"MSYS Makefiles" -DCMAKE_INSTALL_PREFIX=D:/SDK/xlsxio/Install
    这里出过错误cmake error: could not find cmake_root,执行下面指令即可:
    hash -r
    make install
    注意上面的路径必须是/不能是\。至此成功编译。
    要是不带参数默认是C:\Program Files,因为没有访问权限因此install失败。
    操作系统:windows 7 SP1 旗舰版

    展开全文
  • Windows下利用CYGWIN建立ARM交叉编译环境 关键词:交叉编译环境、ARM、GCC、Cygwin、crosstool   以往,使用GCC给ARM写程序很麻烦,他的交叉编译环境是需要在Linux下运行的。而其他的很多工具又不得不在...

    在Windows下利用CYGWIN建立ARM交叉编译环境

    关键词:交叉编译环境、ARM、GCC、Cygwin、crosstool
     
    以往,使用GCC给ARM写程序很麻烦,他的交叉编译环境是需要在Linux下运行的。而其他的很多工具又不得不在Windows下使用,于是人们不得不来回切换操作系统,很麻烦,也浪费了大量宝贵的时间。在经过总结以往的使用经验,反复试验后,现在总算解决了这一问题。
    CYGWIN是一个Windows操作系统下类Linux的运行环境,包括一个用于提供Linux API的DLL和一系列的linux工具。,由于它能够运行于Windows下,我们也就可以直接在Windows下运行Linux中的很多程序,包括GCC编译器和相应的make工具以及其他的一些调试工具等等。在http://cygwin.com/可以下载到最新版本。

    下载完Cygwin的安装程序setup.exe,可以安装了。在安装之前首先确定你要安装的那个驱动器上有3GB的空间,我好几次都是因为磁盘空间不足导致错误,在空出磁盘空间之后,可以继续。
    Cygwin在安装的时候可以选择直接从网络安装、下载安装包和本地安装,我是选的下载安装包,将需要的东西下到本地磁盘里,再从本地安装,下一步选择安装的位置,设置网络连接方式并选择下载站点,之后就是选择需要安装的包,有四种安装状态分别是Default、Install、Reinstall、Uninstall,如果你不能确定你所需要的环境,那就把ALL上的状态设为Install,选择全部安装,我只是把Base、Devel全部安装了,其他的Default,结果在编译环境的安装过程中发现缺少wget下载工具,安装上之后再就没有出现过什么错误。
    Cygwin安装完成后会建立他的快捷方式,双击之进入bash,第一次运行时,他会帮你创建Home以及一些环境变量。
     
    安装完Cygwin,首先需要建立一些必要的文件夹目录和环境变量
    首先到当前用户目录里面建立downloads文件夹,以后所有下载的东西都丢到这个文件夹里面。
    之后在根文件夹上建立"/opt/crosstool"。
     
    接下来就可以安装交叉编译器了,需要到http://kegel.com/crosstool/下载一个叫做crosstool的工具,它把很多配置写成脚本,可以很快捷地建立交叉编译环境,目前最新版本是crosstool-0.38
    解压之后目录下有很多demo-xxx.sh文件,demo-arm.sh是用于arm的,将demo-arm.sh改名为arm.sh,打开并编辑,可以根据不同的cpu 将arm.dat替换为arm-iwmmxt.dat、arm-softfloat.dat、arm-xscale.dat、arm9tdmi.dat、armv5b-softfloat.dat等等,后面的gcc和glibc也改为你所需要的版本。运行此脚本,即可进行安装。
    在安装过程中,会下载binutils、glibc、gcc的源码包,所以需要始终连接到互联网上,也可以事先把需要的包下载到downloads文件夹里再进行安装。
    展开全文
  • Windows下在Qt Creator4.9.1环境下配置Qt5.13.0的交叉编译环境以编译出petelinux可以使用的Qt程序(arm架构的 平台下也可以使用),以编译64bit编译环境为例说明 参考资料: ...
  • Windows 7环境下搭建Cocos2d-x 3.3环境并配置Android交叉编译环境 点击查看
  • windows交叉编译golang

    2017-01-10 15:08:14
     Golang下载:http://www.golangtc.com/download  Git下载:http://git-scm.com/download/  TDM-GCC下载:http://tdm-gcc.tdragon.net/download2、Go编译环境配置 安装 TDM-GCC,程序会自动设置PATH环境变量,...
  • WSL配置交叉编译环境说明启用WSL配置过程交叉编译器 说明 现在win10系统内嵌了一个linux子系统,就想试试是否可以配置成自己平常用的开发环境,之前也试过,但失败了,这一次配置成功了,便记录一下配置过程。 使用...
  • 我的环境:64位 windows 10go version go1.9.1 windows/amd641. 安装MinGW-w64我的系统是64位win10,早期版本的MinGW我安装后编译go的相关工具会一路报错,换成mingw-w64就可以顺利编译,下载地址:...
  • 关于 MacOS 交叉编译 Ubuntu 工具链的问题通过 Homebrew 装过了 gcc,但是现在好像 ld 有点问题环境信息编译平台MacOS Catalina (10.15)brew install gcc 安装了最新的 gcc-9目标平台Ubuntu 16.04主要出错信息ld: ...
  • ARM-Linux 交叉编译环境的创建 建立ARM-Linux交叉编译环境 在进行嵌入式 Linux 系统开发之前首先要建立一个 ARM-Linux 交叉编译 环境这就像在Windows 下安装各类嵌入式开发的编译器一样如Keil uvision2 , IAR-EWARM ...
  • Win7安装交叉编译环境

    2015-09-15 13:19:26
    ARM-linux的交叉编译环境,一般的教程都是在linux系统(比如ubuntu)上安装linaro的arm-linux-gnueabihf编译环境... 这两天试了一下在windows平台上安装交叉编译环境,成功了,这里将详细教程写下来,就当是做个记录。
  • Windows环境下搭建Cocos2d-x3.2环境并配置android交叉编译环境 一、软件 1)VS2012(C++11特性在VS2012以上可以使用);传送门: 2)Cocos2d-x官网源码;传送门: http://cocos2d-x.org/download 3)...
  • 一般的软件系统开发都是在...Windows下开发linux等应用常用的交叉编译环境有: 1、linux服务器,通过securecrt登陆或者vncserver登陆,通过Windows在服务器上进行编译开发; 2、VMware,安装linux系统通过IP连...
  • Windows下Cocos2dx-3.10的Android交叉编译环境搭建 SDK+NDK+ANT+Eclipse
  • 下载golang windows绿色版; cd go/src; GOOS=linux GOARCH=amd64 ./make.bat; 等待编译完成即可; 使用 Liteide 工具的环境下拉框选择,cross-linux64, 然后 ...
  • 本人直接就用过gSoap,它是用以C/C++写webservice的利器 交叉编译的时候,有两个很关键的程序: soapcpp2.exe wsdl2h.exe 它两就是交叉编译程序的关键 要得到这两程序,直接下载gSoap然后打开...
  • 本指南将介绍如何在Windows 7平台搭建Cocos2d-x Android开发环境。本指南操作要求一台搭载Windows 7平台及安装Visual Studio 2012/2013的电脑。最好拥有快速稳定的网络,因为在指南操作中需要下载许多软件包。
  • 交叉编译的时候,有两个很关键的程序: soapcpp2.exe wsdl2h.exe 它两就是交叉编译程序的关键 要得到这两程序,直接下载gSoap然后打开gsoap_2.8.15.zip,在这里 \gsoap_2.8.15\gsoap-2.8\...
  • 从零开始搭建环境。 【转】http://www.yixieshi.com/it/15430.html 后续再完成。 转载于:https://www.cnblogs.com/wangsouc/articles/3851545.html
  • 环境 Key Value 系统 Windows10 WSL系统 Ubuntu 下载工具链 http://www.loongnix.org/index.php/Cross-compile 此处取第一个 部署 在WSL下解压得到 mips-loongson-linux-gnu 目录 进入里面,可以看到有...
  • Windows环境下搭建Cocos2d-x3.2环境并配置android交叉编译环境 2014-08-11 14:13 一、软件 1)VS2012(C++11特性在VS2012以上可以使用);传送门: 2)Cocos2d-x官网源码;传送门: ...
  • 1、准备交叉编译环境环境说明:Windows 7 64位此过程需要:(1)Qt库开源代码,我使用的是5.7.0版本;(2)Perl语言环境5.12版本以上;(3)Python语言环境 2.7 版本以上;(4)Windows平台上的MinGW开发工具集(内含本地...
  • 2 UBUNTU 16搭建LINUX交叉编译环境 8 2.1 IA32-LIBS 库的安装 8 2.2 虚拟机配置两块网卡 8 2.3 NFS服务 9 1.1 下载交叉编译器 9 1.2 交叉编译环境常用工具集 10 1.3 文件系统制作 13 3 PETALINUX安装(WINDOWS下安装...
  • 本文将介绍如何在Windows 7平台搭建Cocos2d-x VS2013和Android开发环境。操作要求一台搭载Windows 7平台及安装Visual Studio 2012/2013的电脑。最好拥有快速稳定的网络,因为在操作中需要下载许多软件包。另外,最好...
  • 本文记录我在Win7下搭建Cocos2d-x开发...后半部分记录android交叉编译环境搭建,需要用到Eclipse,ADT,Android SDK和Cygwin,NDK,前三个可以独立构成android开发环境,后两个是连接win32与android编译环境的桥梁。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 870
精华内容 348
关键字:

windows交叉编译环境