SoC EDS DS-5 installation on Linux - eclipse

I am trying to install EDS DS-5 18.1 on my Linux 16.04 machine but after installation, I can't run it (not at all even from terminal window).
The error message is:
the expected Ds-5 environment has not been configured. Please ensure
Eclipse is started using the correct executable so that the
environment is automatically configured.

The solution of the problem was simple and I just noticed it in DS-5 examples which can be found in directory: C:\altera\18.1\embedded\examples\software...
DS-5 must be launched from the SoC EDS Command Shell in order to have all environment variables properly set up. Launch the SoC EDS Command Shell in Windows by selecting Altera -> SoC Embedded Design Suite -> SoC EDS Command Shell.
In Linux, run embedded_command_shell.sh found in the linux64 directory. (Do not source the .sh, simply type its name at the prompt.)

Related

vscode inside WSL vs Windows

In tutorial requirement is install vscode in windows and install Remote Development extension pack. Why not just install in wsl?
I've install vscode to wsl. When I run code in wsl I get message:
To use Visual Studio Code with the Windows Subsystem for Linux, please install Visual Studio Code in Windows and uninstall the Linux version in WSL. You can then use the `code` command in a WSL terminal just as you would in a normal command prompt.
Do you want to continue anyway? [y/N]
To no longer see this prompt, start Visual Studio Code with the environment variable DONT_PROMPT_WSL_INSTALL defined.
Which cons of run vscode in wsl as opposed to run it in Windows?
The WSL extension splits VS Code into a “client-server” architecture, with the client (the user interface) running on your Windows machine and the server (your code, Git, plugins, etc) running "remotely" in your WSL distribution.
When VS Code is started in WSL, no shell startup scripts are run.
The extension runs commands and other extensions directly in WSL so you can edit files located in WSL or the mounted Windows filesystem (for example /mnt/c) without worrying about pathing issues, binary compatibility, or other cross-OS challenges.
(source: MSFT DOCUMENTATION)
This is the architectural choice of Windows and - personally speaking - I feel like it's a choice to avoid conflicts and redundancies.
When running the WSL extension, selecting the 'Extensions' tab will display a list of extensions split between your local machine and your WSL distribution.
Installing a local extension, like a theme, only needs to be installed once.
Some extensions, like the Python extension or anything that handles things like linting or debugging, must be installed separately on each WSL distribution. VS Code will display a warning icon ⚠, along with a green "Install in WSL" button, if you have an extension locally installed that is not installed on your WSL distribution.

Netbeans: how to open an command line on Windows

Netbeans has a terminal window but it requires cygwin to be installed. Since I can't install cygwin (it requires admin permission), is there a way to open a Windows command line prompt(cmd) inside Netbeans?
Cygwin does need to be installed for NetBeans to have a Terminal window, and by default administrator rights are required to install it. However you can override that default requirement using the --no-admin argument when you install it.
See section 2.4 of the Cygwin FAQs:
2.4.
Can I install Cygwin without administrator rights?
Yes. The default installation requests administrator rights because
this allows to set up the Cygwin environment so that all users can
start a Cygwin shell out of the box. However, if you don't have
administrator rights for your machine, and the admins don't want to
install it for you, you can install Cygwin just for yourself by
downloading setup-x86.exe (for a 32 bit install) or setup-x86_64.exe
(for a 64 bit install) and then start it from the command line or via
the "Run..." dialog from the start menu using the --no-admin option,
for instance:
setup-x86.exe --no-admin
(While this is an answer, I am unfortunately not in a position to verify that it actually works.)
Make sure your Netbeans is closed while installing the Cygwin plugin, preferably download the . msi file for your PC's architecture(32 or 64 bits).
Thereafter Click on the tools bar above then you'll seen open in Terminal that should provide a terminal at the bottom of your Netbeans program.
Most importantly ensure your Netbeans is closed during installation.

How do I run a OS kernel from Eclipse?

I am creating a OS kernel in C, C++ and assembly. I am developing on a installed Eclipse CDT IDE on my Ubuntu 16.04 LTS machine. I am searching about run configurations in eclipse, but it seems to be that it is used for executing application binaries. My OS kernel is not a normal binary that can be executed under Linux. It must be emulated using software like QEMU and Bochs.
My Makefile uses the command q to run the kernel inside QEMU after building its components:
make q
Using the build configuration, I can make Eclipse build the kernel by executing the following command in a bash shell:
make Build
How can I create a run configuration in Eclipse so that it can run the kernel after building it? Currently, I have to type in the terminal window to run the kernel, or create an alterative build configuration to run the kernel, even if I click the build button.
After a long time, I have found the solution to this problem. The thing is that your kernel is not a normal C++ application. Eclipse can only execute the app in the context of the already running operating system. You need to make a launcher program that executes things on your behave or runs a script to run the kernel.
Well, since you use a makefile, you could just run the make program directly. Its binary may be stored in usr/bin/make.
In your run configuration, pass the location of your makeprogram as the C++ application's path. In addition to this, add the arguments given to the C++ application, including -
RunCommand - The command in the makefile that runs your kernel.
-f/path/to/makefile - The make program needs to know where your Makefile is because it is being executed by a absolute path (usr/bin/make).
-I/path/to/project-dir - The make program must also switch the current working directory to your project directory so that the commands work.

GDB crashes when trying to attach

I am trying to setup the gdb debugger in eclipse to attach to a remote program. Here is the setup that I am using:
For the development PC (dev), I am using Eclipse Mars on a Windows 7 PC. Eclipse is set to use the GCC/G++ cross compiler and gdb as the remote debugger. I am using Sourcery CodeBench Lite as the development tool in windows.
dev> gdb --version
dev> GNU gdb (Sourcery CodeBench Lite 2014.05-25) 7.7.50.20140217-cvs
The target PC is a RHEL 7, where I use gdbserver so that I can debug my application remotely.
target> gdbserver --version
target> GNU gdbserver (GDB) Red Hat Enterprise Linux 7.6.1-64.el7
Copyright (C) 2013 Free Software Foundation, Inc.
I have two debug configuration in eclipse, one for remote debug and another for attaching to a remote program that is running in target PC. I have no problem debugging my program using the remote debug configuration, however, when I try to attach to the remote program, I get the following error:
Here is how I set up my debugger to attach to a remote application:
I use the following gdbinit script:
handle SIG34 nostop noprint pass
set verbose on
set sysroot
I have also tried using the same GDB versions on both sides and got the same result. At this point, I am open to any suggestion!
Ok, So I think I got it working. The problem seems to be because of the old GDB version that I was using on the target PC. As I mentioned in my question, I was using GDB 7.6.1-64.el7. To update the GDB, I downloaded the latest source code from http://ftp.gnu.org/gnu/gdb/ . Remember to update both gdb and gdbserver. The gdbserver is provided in the download package. Here are the steps that I took after I put gdb archive in target/tmp :
target_pc/tmp> gtar -xvf gdb-7.11.tar.gz
target_pc/tmp> cd gdb-7.11
target_pc/tmp/gdb-7.11> ./configure
target_pc/tmp/gdb-7.11> make
target_pc/tmpgdb-7.11> cd gdb/gdbserver
target_pc/tmpgdb-7.11/gdb/gdbserver> ./configure
target_pc/tmpgdb-7.11/gdb/gdbserver> make
after a successful built you can either use make install or copy the gdb and gdbserver binary and put it to the /usr/bin or /bin directory. Also you need to restart the gdbserver:
/usr/bin/gdbserver --remote-debug --multi :8000
you can add this line to /etc/rc.local so that you start the gdbserver upon the linux boot.

Remote debugging using LinuxTools' Valgrind profiler in Eclipse

I have a program that I'd like to run remotely under Valgrind using the Linux Tools remote Valgrind profiler.
I normally debug remotely on a headless server (which has special hardware, so it has to be done remotely on that machine) using RSE, which works fine. Both my machine and the target are Linux machines.
I am now trying to get Valgrind working through Eclipse using the Linux Tools plugin. I have Valgrind 3.10 installed on the remote target machine, and I can run it up manually (outside of Eclipse):
Remotely:
valgrind --vgdb=full --vgdb-error=0 /path/to/app --args
vgdb --port=2345 --pid=XXXX
Locally, connect with gdb with target remote host:2345.
However, I can't work out how to get the "Valgrind (remote)" Eclipse tooling to emulate this, aping the "RemoteTools" setup shown here: .
When I write in a "To:" executable that starts with "rse:/", I get an error in the Profiling Tools settings window top corner saying [Valgrind Options]: Couldn't determine version of Valgrind. What should I write here to get a working remote Valgrind connection?
Haven't found more recent posts on the topic, maybe it will be useful for somebody. I also didn't manage to use remote valgrind plugin with RSE. Seems like only dstore connection type will work for Linux Tools remote valgrind, because SSH or FTP didn't work for me. rseserver requires Perl and Java, and I didn't have them on my target.
I had to use this complicated solution via Launch Group combining this and this solutions. Preconditions: valgrind and vgdb are installed on remote target.
Write a script start_remote_valgrind.sh
set -x
remote_ip=192.168.7.2
remote_port=2222
app_name=test_app
remote_dir=/usr/local/bin/
local_dir=/home/project_name/
ssh -T root#$remote_ip killall -9 vgdb
ssh -T root#$remote_ip killall -9 valgrind
scp $local_dir$app_name root#$remote_ip:$remote_dir$app_name
ssh root#$remote_ip valgrind --vgdb=full --vgdb-error=0 --leak-check=full -v $remote_dir$app_name &
sleep 1
ssh root#$remote_ip vgdb --port=$remote_port
Create debug configuration Run->Debug Configurations->C/C++ remote application:
2.1 On themain tab set the project name and app binary
2.2 In the bottom of the configuration window click "Select Other" link and select "GDB (DSF) manual remote launcher"
2.3 On Debugger tab set GDB debugger for you target platform, command line script .gdbinit.
2.4 On Debugger->connection tab set TCP connection, remote ip and port.
Create external tool Run->external tools->external tools configuration...
Create Launch Group Run->Debug Configurations->Launch Group
external tool must be in Run configuration, remote gdb in Debug. The benefit of this approach is that remote valgrind output is printed in Eclipse console, so you don't need to launch vgdb manually in a separate console and see messages in separate window.