首页 > 系统相关 >Ubuntu中搭建eclipse arm Linux gcc + jlink调试环境

Ubuntu中搭建eclipse arm Linux gcc + jlink调试环境

时间:2024-03-12 15:34:11浏览次数:37  
标签:bin 4.4 gcc -- eclipse usr Ubuntu local arm

  嵌入式arm开发过程中,需要用到 jlink 进行调试开发,需要搭建eclipse arm linux gcc + jlink 调试环境,按照以下步骤搭建的环境可以识别到jlink。

0 环境搭建概述
所需工具:
(1)Eclipse
  Eclipse的本身只是一个框架平台,但是众多插件的支持,使得Eclipse拥有较好的灵活性。

(2)CDT

  CDT是Eclipse用于扩展Eclipse支持C/C++开发的插件。

(3)ARM cross GCC tooltain
  整合了GNU arm的交叉编译工具链,是一个跨平台的 ARM 架构开发平台,是一个 Eclipse 的插件。

(4)J-LINK GDB Server

  A JTAG GDB Debug agent run on Host

IDE整体结构框图

 

1 安装交叉编译器

下载arm-linux-gcc

Ubuntu下安装arm-linux-gcc-4.4.3
具体步骤:
0、软件下载
友善之臂的官网下载:

http://www.arm9.net/download.asp
或 http://download.csdn.net/download/mybelief321/5563837
arm-linux-none-gcc:
https://launchpad.net/gcc-arm-embedded/+download


1、解压 sudo tar zxvf arm-linux-gcc-4.4.3.tar.gz -C/   (实际上是在根目录下建立文件夹opt)
2、建立目录
sudo mkdir /usr/local/arm
3、复制文件
sudo cp -r /opt/FriendlyARM/toolschain/4.4.3 /usr/local/arm
4、添加环境变量
网上很多修改环境变量的方法,很杂。下面一共列举三种方法,有人都在ubuntu14.04.03上试过,可行。(本人实测第一种第二种都可行)

方法一:修改/etc/bash.bashrc文件(此文件只对当前用户适用)
sudo gedit /etc/bash.bashrc
在最后加上
export PATH=$PATH:/opt/FriendlyARM/toolschain/4.4.3/bin
export PATH=$PATH:/usr/local/arm/4.4.3/bin

(路径)(注意等号那边不要有空格)

方法二:修改/etc/profile文件(此文件属于系统级别的环境变量,设置在里面的东西对所有用户适用)
sudo gedit /etc/profile
增加路径设置,在末尾添加如下:
export PATH=$PATH:/usr/local/arm/4.4.3/bin

方法三:修改/etc/environment文件
sudo gedit /etc/environment
原文件应为
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games“
将其改为
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/arm/4.4.3/bin"
修改环境变量:
/etc$ vim environment
添加:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/game s:/usr/local/games:/usr/local/arm/gcc-arm-none-eabi-4_8-2014q3/bin/"
/usr/local/arm/gcc-arm-none-eabi-4_8-2014q3/bin/

Tips: 关于环境变量问题:

  环境变量是什么?例如path,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还应到path中指定的路径去找。用户通过设置环境变量,来更好的运行进程。
  如果上面不加入环境变量,要运行arm-linux-gcc这个程序,则每次都要把arm-linux-gcc的完整路径写出来。/usr/local/arm/4.4.3/binarm-linux-gcc 文件名 -o 输出文件名
这样非常的麻烦,所以加到path里面,让电脑知道这个程序在哪里。


5.注册环境变量(此步未做,步骤8同样显示安装成功)
立即使新的环境变量生效,不用重启电脑,对应步骤5也有3种方法
方法一:source /etc/bash.bashrc
方法二:source /etc/profile
方法三:立即生效
检查环境变量是否设置好。
$echo $PATH
输出:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/opt/FriendlyARM/toolschain/4.4.3/bin:/usr/local/arm/4.4.3/bin:/opt/FriendlyARM/toolschain/4.4.3/bin:/usr/local/arm/4.4.3/bin

【注】环境变量常见错误:若在该步骤中出现提示arm-linux-none-gcc command not found,只需要执行 sudo apt-get install lib32z1 可以解决问题;


6、验证:arm-linux-gcc -v ,我的显示如下:
Using built-in specs.
Target: arm-none-linux-gnueabi
Configured with: /opt/FriendlyARM/mini2440/build-toolschain/working/src/gcc-4.4.3/configure --build=i386-build_redhat-linux-gnu --host=i386-build_redhat-linux-gnu --target=arm-none-linux-gnueabi --prefix=/opt/FriendlyARM/toolschain/4.4.3 --with-sysroot=/opt/FriendlyARM/toolschain/4.4.3/arm-none-linux-gnueabi//sys-root --enable-languages=c,c++ --disable-multilib --with-arch=armv4t --with-cpu=arm920t --with-tune=arm920t --with-float=soft --with-pkgversion=ctng-1.6.1 --disable-sjlj-exceptions --enable-__cxa_atexit --with-gmp=/opt/FriendlyARM/toolschain/4.4.3 --with-mpfr=/opt/FriendlyARM/toolschain/4.4.3 --with-ppl=/opt/FriendlyARM/toolschain/4.4.3 --with-cloog=/opt/FriendlyARM/toolschain/4.4.3 --with-mpc=/opt/FriendlyARM/toolschain/4.4.3 --with-local-prefix=/opt/FriendlyARM/toolschain/4.4.3/arm-none-linux-gnueabi//sys-root --disable-nls --enable-threads=posix --enable-symvers=gnu --enable-c99 --enable-long-long --enable-target-optspace
Thread model: posix
gcc version 4.4.3 (ctng-1.6.1)


学习:1、bin文件中一般存放的都是可执行的文件,
2、注意学习chown chmod 命令的基本用法和作用
3、学会看懂和修改文件的属性介绍
4、/etc/profile中的文件属于系统级别的环境变量,设置在里面的东西(配置信息)对所有用户适用

2 安装JLINK GDB-SERVER

SEGGER官网下载最新jlink驱动,网址 https://www.segger.com/downloads/jlink
由于国内使用的JLINK大部分都是盗版的:
建议使用jlink5.6以下的版本
本人使用的是 jlink_5.0_x86_64.deb
1,下载完成后,安装
安装deb软件包
sudo dpkg -i xxx.deb删除软件包
sudo dpkg -r xxx.deb
2,安装好啦,找到 /opt目录下SEGGER文件,说明驱动已经安装
3,找到路径 /opt/SEGGER/JLink/
4,执行./JLinkExe 进入JLink命令行模式
5,已经可以看到采集的REF电压勒,成功就在眼前啦,提示我们connect以下硬件,此时连接好电路板,电路板上电,输入 connect 命令,然后会要求输入芯片型号,然后选择调试模式(我只连接了SWD,所以选择SWD模式),最后选择接口速度,随便多少都行。
6,到目前为止已经可以通过JLink调试处理器了,通过两个简单命令来控制处理器,我的处理器里跑了一个rt-thread,做了一个跑马灯,h暂停,会显示处理器暂停到哪里以及其他好多数据输入h后灯停在闪动;g运行,输入g后继续开始运行,灯恢复闪动,说明JLink已经可以调试处理器

yyl@B490:/opt/SEGGER/JLink$ ./JLinkExe
SEGGER J-Link Commander V6.50b (Compiled Sep 6 2019 17:46:52)
DLL version V6.50b, compiled Sep 6 2019 17:46:40

Connecting to J-Link via USB...O.K.
Firmware: J-Link ARM V7 compiled Jun 20 2012 19:45:53
Hardware version: V7.00
S/N: 19087980
License(s): RDI, FlashDL, FlashBP, JFlash, GDBFull
VTref=0.569V


Type "connect" to establish a target connection, '?' for help
J-Link>

*** J-Link V6.50b J-Link V6.50b Warning ***
The connected J-Link is defective. Proper operation cannot be guaranteed.
Please get in touch with [email protected] and send a screenshot of this dialog with the e-mail.

J-Link information:
S/N: 19087980
Firmware: J-Link ARM V7 compiled Jun 20 2012 19:45:53

*** J-Link V6.50b J-Link V6.50b Warning ***


Unknown command. '?' for help.
J-Link>

yyl@B490:/opt/SEGGER/JLink$ ./JLinkGDBServer
SEGGER J-Link GDB Server V6.50b Command Line Version

JLinkARM.dll V6.50b (DLL compiled Sep 6 2019 17:46:40)

-----GDB Server start settings-----
GDBInit file: none
GDB Server Listening port: 2331
SWO raw output listening port: 2332
Terminal I/O port: 2333
Accept remote connection: yes
Generate logfile: off
Verify download: off
Init regs on start: off
Silent mode: off
Single run mode: off
Target connection timeout: 0 ms
------J-Link related settings------
J-Link Host interface: USB
J-Link script: none
J-Link settings file: none
------Target related settings------
Target device: Unspecified
Target interface: JTAG
Target interface speed: 4000kHz
Target endian: little

Connecting to J-Link...
J-Link is connected.
Failed to set device (Unspecified). Unknown device selected?ERROR : Failed to set device.

Firmware: J-Link ARM V7 compiled Jun 20 2012 19:45:53
Hardware: V7.00
S/N: 19087980
Feature(s): RDI, FlashDL, FlashBP, JFlash, GDBFull
Checking target voltage...
Connecting to target failed. Connected correctly?
GDB Server will be closed...
Shutting down...
Could not connect to target.
Please check power, connection and settings.yyl@B490:/opt/SEGGER/JLink$

3 安装JDK执行环境

3.1安装openjdk

1、install java vm
sudo apt-get install openjdk-8-jdk

sudo apt-get purge openjdk-\*
这行命令会从你的系统中完整移除OpenJDK/JRE.

3.2 安装oracle jdk

下载:
https://www.oracle.com/technetwork/java/javase/downloads/jdk13-downloads-5672538.html
安装:
sudo mkdir -p /usr/local/java
sudo cp -r jdk-13_linux-x64_bin.tar.gz /usr/local/java/
cd /usr/local/java
sudo tar xvzf jdk-13_linux-x64_bin.tar.gz
sudo gedit /etc/profile

将下面几行插入你的/etc/profile文件底部:
JAVA_HOME=/usr/local/java/jdk-13
JRE_HOME=/usr/local/java/jre-13
PATH=$PATH:$JRE_HOME/bin:$JAVA_HOME/bin
export JAVA_HOME
export JRE_HOME
export PATH

sudo update-alternatives --install "/usr/bin/java" "java" "/usr/local/java/jdk-13/bin/java" 1
sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/local/java/jdk-13/bin/javac" 1

4 安装eclipse+

下载:
https://www.eclipse.org/downloads/download.php?file=/oomph/epp/2019-09/R/eclipse-inst-linux64.tar.gz&mirror_id=105

压缩版:

https://www.eclipse.org/downloads/packages/release/2019-09/r/eclipse-ide-eclipse-committers

安装:
直接点击eclipse install程序即可

卸载:
sudo apt-get autoremove eclipse*
rm -r ~/.eclipse/

5 安装c/c++ cdt

在help-》install new software中输入下面的网址,select all,安装CDT
http://download.eclipse.org/tools/cdt/releases/9.9

6 安装GNU arm c/c++ development support

在help-》install new software中输入下面的网址,select all,安装GNU arm c/c++ development support
http://gnuarmeclipse.sourceforge.net/updates
https://sourceforge.net/projects/gnuarmeclipse/files/latest/download  (这两个网址实测都用不了,可以在eclipse中的marketplace中搜索GNU arm进行安装)

 

7 基本使用

7.1 编译

(1)创建新的工程
new->c project

 next---->advanced setting设置相关的芯片,注意检查:
(1)编译
(2)汇编
(3)链接
过程中使用的编译选项是否符合要求

 注意检查:
(1)Toolchains中的交叉编译器是否你设置的编译器
(2)编译器的路径设置是否正确(主要用于后期使用编译器自带的标准库)

 导入源码工程
(1)在工程下建立src文件夹,并import “file system”

 

编译调错

7.2 Debug设置

(1)debug设置前确保arm-gdb已经正确配置(前面的编译器工具链路径正确)
(2)确保JLINK包已经正确安装,并能正确执行:
./JLinkExe
./jlinkgdbserver
(3)Debug Configure

 (4)GDB SEGGER J-LINK Debugging
new lunch

main选项中,检查
project
elf文件的位置

 

 

设置
(1)device name
(2)JLINK相关配置
(3)设置command如下:
#set mem inaccessible-by-default on
# s3c2440_config
# connect to the J-Link gdb server
target remote localhost:2331
monitor reset
monitor halt
monitor speed 8000
monitor endian little
monitor reg cpsr = 0xd3

#WDT
monitor memU32 0x53000000 = 0x00000000 #WTCON
#PLL
monitor memU32 0x4C000000 = 0xFFFFFFFF #LOCKTIME
monitor memU32 0x4C000004 = 0x0005C011 #MPLLCON
monitor memU32 0x4C000008 = 0x00038022 #UPLLCON
monitor memU32 0x4C00000C = 0x00FFFFF0 #CLKCON
monitor memU32 0x4C000010 = 0x00000004 #CLKSLOW
monitor memU32 0x4C000014 = 0x00000005 #CLKDIVN
monitor memU32 0x4C000018 = 0x00000000 #CAMDIVN
#MEMCTRL
monitor memU32 0x48000000 = 0x22011110 #BWSCON
monitor memU32 0x48000004 = 0x00000700 #BANK0-5
monitor memU32 0x48000008 = 0x00000700
monitor memU32 0x4800000c = 0x00000700
monitor memU32 0x48000010 = 0x00000700
monitor memU32 0x48000014 = 0x00000700
monitor memU32 0x48000018 = 0x00000700
monitor memU32 0x4800001C = 0x00018005 #BANK6-7
monitor memU32 0x48000020 = 0x00018005
monitor memU32 0x48000024 = 0x008C07A3 #REFRESH
monitor memU32 0x48000028 = 0x000000B1 #BANKSIZE
monitor memU32 0x4800002C = 0x00000030 #MRSRB6-7
monitor memU32 0x48000030 = 0x00000030

break go_main #设置断电
#load
#continue

同时注意检查其它选项,开始调试

 

生成的编译指令: arm-none-eabi-gcc -mcpu=cortex-a9 -march=armv7-a -marm -mlittle-endian -mfloat-abi=soft -munaligned-access -O2 -g -std=gnu11 -c -o "目标文件名" "原始文件名"; 其中-mcpu设置CPU类型为cortex-A9、结构为armv7-a、存储格式为little-endian; -mfloat-abi=soft为选择软件库实现浮点运算...

 

标签:bin,4.4,gcc,--,eclipse,usr,Ubuntu,local,arm
From: https://www.cnblogs.com/FireLife-Cheng/p/18068428

相关文章

  • Ubuntu 与Windows 之间搭建共享文件夹
    工作中经常需要搭建Linux环境用于测试以及其他开发需求,办公电脑通常是Windows系统,为便于让文件在两个系统之间传输,可以采取共享文件的方式实现;1、安装samba服务;sudoaptupdatesudoaptinstallsamba2、创建共享文件夹:mkdir  /path/shared-foldersu......
  • WSL基本使用,Ubuntu->docker->MySQL8
    适用于Linux的Windows子系统(WSL)可让开发人员直接在Windows上按原样运行GNU/Linux环境(包括大多数命令行工具、实用工具和应用程序),且不会产生传统虚拟机或双启动设置开销。基本使用安装#此命令将启用运行WSL并安装Linux的Ubuntu发行版所需的功能。wsl--inst......
  • Ubuntu重置登录密码
    1、一直按住shift键,并重启计算机,进入到GRUB引导界面,选择AdvancedoptionsforUbuntu 2、选择带recoverymode恢复模式的菜单 3、选择Droptorootshellprompt选项菜单 4、出现以#开头表示已进入root账户权限 5、输入passwd账户名,输入两次新密码后,当提......
  • 新版eclipse创建maven项目步骤
    eclipse版本:eclipse-jee-2023-12R一、使用eclipse自带的maven,先进行eclipse配置:1、打开Window-》preferences-》maven-》installations-》可以看到eclipse自带的maven版本,默认勾选的也是该版本(如果需要使用自行安装的maven可以在这里add);2、打开Window-》preferences-》maven-......
  • Ubuntu.software.rabbitsvc 电脑死活没有右键rabbitsvc菜单+密码没有记住没法保存
    本来这个想发到每日运维的,但是觉得这个比较典型,适合拿来单独说。 现象:其他人电脑装rabbitsvc一次就成功,有的不成功重启一下就好了,或是使用nautilus-a重启一下文件管理器就好了,但是这一台就是不行,版本同样是20.04,太奇怪了小知识:ubuntu20.04有两种文件管理器,一个是nautil......
  • 在virtualbox上安装ubuntu
    本教程以virtualbox7.0.14+ubuntu20.04.4为例。ubuntu官网其实已经有一篇写的非常棒的安装教程,链接如下。https://ubuntu.com/tutorials/how-to-run-ubuntu-desktop-on-a-virtual-machine-using-virtualbox#1-overview目录如下。OverviewCreateanewvirtualmachineI......
  • Ubuntu2204初始化过程
    Ubuntu2204初始化过程背景Ubuntu基本上每两年发布一个LTS的版本.虽然现在是202403了,但是之前的版本还是22.04.4其实ubuntu有server和desktop理论上我可以只使用server版本但是为了便于交出去,我想用desktop增加server组件的方式进行处理.下载https://rel......
  • ubuntu20.04-通过docker安装jenkins并自动化发布java
    前言jenkins需要git、maven和node,其中maven和node手动添加,git和git环境是jenkins镜像自带了的。如果删除了docker对应的jenkins容器后(删除前一定备份jenkins_home整个文件夹,否则怕前功尽弃:tar-czvfjenkins_home.tar.gz/var/jenkins_home)如果删除了容器,需要重新安装并配置m......
  • Ubuntu20.04使用apt安装以boost库为基础的开发环境
    1.开启了x11功能的mobaxterm(mobaXterm默认开启了,其他的终端可能还要设置开启)上安装一些必要依赖sudoaptinstalllibxext6libxrender1libxtst6libxi6libfreetype6-ysudoapt-getinstallfonts-droid-fallbackttf-wqy-zenheittf-wqy-microheifonts-arphic-ukaifonts-a......
  • 「Ubuntu使用」Ubuntu下安装wps及缺少字体如何处理?
    注:此文参考CSDN链接:https://blog.csdn.net/u010164190/article/details/127272815微软Office没有Linux版,好在Wps有Linux版本,除了宏不能使用以外,使用起来基本没什么问题。但安装完成后会提示缺失字体,这些字体是Windows自带的字体,在Windows环境不会有问题,但在Ubuntu系统下会提示。......