Eclipse CDT projects with bitbake
Project Files and Directories
← Older revision Revision as of 02:43, 22 November 2017 (10 intermediate revisions by the same user not shown)Line 1: Line 1: +==Introduction== +Elphel camera software is based on Yocto Poky distribution, all the individual projects such as Linux kernel drivers, C/C++ applications, web applications, Python projects are organized as '''Makefile''' projects, each tied to a separate Git repository. The makefiles are not standalone, they receive defined variables provided by '''bitbake''' recipes and classes. +The top project [https://git.elphel.com/Elphel/elphel393 elphel393] has the '''setup.py''' script that installs and synchronizes them. All projects have Eclipse IDE configuration data (in '''eclipse_project_setup''' subdirectories), and this data is copied to the project root by '''setup.py'''. As Eclipse project settings may have user-dependent settings, current configuration files (/.project, /.cproject, ...) are not version controlled, so to restore them after corruption or just to get updated versions you need either to manually copy '''eclipse_project_setup''' sub-tree, or delete /.project and re-run '''setup.py'''. − +Eclipse IDE setting reference not only files that are in the Git repository, but also those that are generated during build process, so Eclipse should be launched with these projects only after the command-line [[Poky_2.0_manual#Setup|build process]] has finished. If Eclipse is opened after some project is cleared (such as with '''bitbake -c clean''') it will delete the non-existing directories from '''.cproject''' configuration files. If that happens, you may close Eclipse and restore '''.cproject''' from the '''eclipse_project_setup/.cproject'''. − ├── bitbake-logs -> /home/eyesis/nc393/elphel393/poky/build/tmp/work/cortexa9-neon-poky-linux-gnueabi/apps-gps/1_0-26/temp+ − ├── eclipse_project_setup+After running '''setup.py''' for the first time you may create the brand new workspace for Eclipse, that should have all necessary plugins (such as CDT and EGit at least) already installed. Workspace is created with '''setup_eclipse.py''' script, list of projects that it sets up is saved in '''setup_eclipse_paths.xml''' file. '''setup_eclipse.py''' provides usage information when launched without parameters, for normall run it requires full path to Eclipse installation - directory that contains '''eclipse''' executable and '''eclipse.ini''' configuration. + +Projects are relying on '''bitbake''' build process, so main Eclipse build command launches '''bitbake ''target-name'' -c compile -f''' instead of '''make all''' or similar. And as error processing (problem highlighting in the source code, jump to source file/line) is possible only for the main builder, it is the '''CDT Builder''' that has to be configured this way. + + +==Project Files and Directories== + +Below is the file/directory list of a typical application ('''elphel-apps-astreamer''' is a subdirectory of '''elphel393/rootfs-elphel''', '''apps-astreamer''' - bitbake target for this project): + + ├── '''bitbake-logs''' -> /home/eyesis/nc393/elphel393/poky/build/tmp/work/cortexa9-neon-poky-linux-gnueabi/apps-astreamer/1_0-23/temp + ├── '''eclipse_project_setup''' │ ├── .externalToolBuilders │ ├── .externalToolBuilders − │ │ └── SCP apps-gps to target.launch+ │ │ └── SCP apps-astreamer to target.launch │ ├── .cproject │ ├── .cproject │ └── .project │ └── .project − ├── .externalToolBuilders+ ├── '''.externalToolBuilders''' − │ └── SCP apps-gps to target.launch+ │ └── SCP apps-astreamer to target.launch − ├── image -> /home/eyesis/nc393/elphel393/poky/build/tmp/work/cortexa9-neon-poky-linux-gnueabi/apps-gps/1_0-26/image+ ├── '''.git''' − ├── scripts -> ../../scripts/+ ... − │ ├── run_bitbake.sh+ ├── '''image''' -> /home/eyesis/nc393/elphel393/poky/build/tmp/work/cortexa9-neon-poky-linux-gnueabi/apps-astreamer/1_0-23/image − │ └── used_files.py+ ├── '''scripts''' -> ../../scripts/ − ├── src+ │ ├── '''run_bitbake.sh''' − │ ├── .depend+ │ └── '''used_files.py''' − │ ├── exifgen.c+ ├── '''.settings''' − │ ├── exifgen.h+ │ └── language.settings.xml − │ ├── garmin.h+ ├── '''src''' − │ ├── garminusb2exif.c+ │ ├── audio.cpp − │ ├── garminusb2nmea.c+ │ ├── audio.h − │ ├── imu_setup.php+ ... − │ ├── logger_launcher.php+ │ ├── streamer.h − │ ├── log_imu.c+ │ ├── video.cpp − │ ├── Makefile+ │ └── video.h − │ ├── nmea2exif+ ├── '''sysroots''' -> /home/eyesis/nc393/elphel393/poky/build/tmp/sysroots − │ ├── nmea2exif.c+ ├── '''.cproject''' − │ ├── nmeagen.c+ ├── '''.gitignore''' − │ ├── nmeagen.h+ ├── '''LICENSE''' − │ ├── read_imu_log.php+ ├── '''Makefile''' − │ └── start_gps_compass.php+ ├── '''.project''' − ├── sysroots -> /home/eyesis/nc393/elphel393/poky/build/tmp/sysroots+ ├── '''README.md''' − ├── .cproject+ └── '''VERSION''' − ├── .gitignore+*'''bitbake-logs''' is a convenience link to the latest bitbake build logs − ├── LICENSE+*'''eclipse_project_setup''' copy of Eclipse IDE settings under version control. Content of the subdirectory is copied (during setup or manually) to teh project root directory (one level up). − ├── Makefile+*'''.externalToolBuilders''' is copied from '''eclipse_project_setup''' and then maintained by Eclipse. Currently is used to launch file copying to the target (actual camera). − ├── .project+*'''.git''' - project Git data tree − ├── README.md+*'''image''' is a link to directory that contains deployable files, built as a result of bitbake recipes execution. − └── VERSION+*'''scripts''' - a link to a collection of scripts needed for all projects. It contains the following files: +**'''run_bitbake.sh''' - script to create an environment and execute bitbake recipe. Used every time Eclipse builds the project. +**'''used_files.py''' - script to create a list of header files/directories used by bitbake to build the project. It is not needed to run to configure existing projects - all of them are provided with preconfigured '''.cproject''' files. ''TODO: add link to description'' +*'''.settings''' - project settings maintained by Eclipse IDE +*'''src''' - a hard-coded (in '''used_files.py''') directory name for C/C++ source files. Source files should not be in the project root directory for convenience of filter generation for additional source (headers) directories +*'''sysroots''' - a link to header files directories, available in the target system. The content is generated after the linux kernel is being built. All the applications use header files from the subdirectories of this folder. This link is generated for every project by the bitbake class. +*'''.cproject''' - Eclipse CDT project configuration. Parts of this file are modified by the scripts, such as '''used_files.py'''. This file is copied from version-controlled '''eclipse_project_setup''' during setup or manually. +*'''.gitignore''' - Git ignore file list +*'''LICENSE''' +*'''Makefile''' +*'''.project''' +*'''README.md''' +*'''VERSION''' Line 45: Line 70: [[File:Eclipse scp options.png|500px|thumb|right|Figure 3. Configuring SCP to target tool for apps-astreamer project(options)]] [[File:Eclipse scp options.png|500px|thumb|right|Figure 3. Configuring SCP to target tool for apps-astreamer project(options)]] [[File:Eclipse ccpp build.png|500px|thumb|right|Figure 4. C/C++ Build ⇒ Builder Settings]] [[File:Eclipse ccpp build.png|500px|thumb|right|Figure 4. C/C++ Build ⇒ Builder Settings]] −[[File:Eclipse builders.png|500px|thumb|right|Figure 5. Project builders]]+[[File:Eclipse ccpp build behavior.png|500px|thumb|right|Figure 5. C/C++ Build ⇒ Behavior]] −[[File:Eclipse builders.png|500px|thumb|right|Figure 6. Project builders]]+[[File:Eclipse ccpp build refresh.png|500px|thumb|right|Figure 6. C/C++ Build ⇒ Refresh Policy]] −[[File:Eclipse builders.png|500px|thumb|right|Figure 6. Project builders]]+[[File:Eclipse source location.png|500px|thumb|right|Figure 7. C/C++ General ⇒ Paths and Symbols ⇒ Source Location]] Andrey.filippovEclipse CDT projects with bitbake
Eclipse CDT projects with bitbake
File:Eclipse source location.png
Andrey.filippov uploaded a new version of File:Eclipse source location.png different project, for consistency with other illustrations
New page
== Licensing =={{GNU FDLv1.3 }} Andrey.filippov
File:Eclipse source location.png
Andrey.filippov uploaded File:Eclipse source location.png
New page
== Licensing =={{GNU FDLv1.3 }} Andrey.filippov
File:Eclipse ccpp build refresh.png
Andrey.filippov uploaded File:Eclipse ccpp build refresh.png
New page
== Licensing =={{GNU FDLv1.3 }} Andrey.filippov
File:Eclipse ccpp build behavior.png
Andrey.filippov uploaded File:Eclipse ccpp build behavior.png
New page
== Licensing =={{GNU FDLv1.3 }} Andrey.filippov
Eclipse CDT projects with bitbake
File:Eclipse ccpp build.png
Andrey.filippov uploaded File:Eclipse ccpp build.png
New page
== Licensing =={{GNU FDLv1.3 }} Andrey.filippov
File:Eclipse scp options.png
Andrey.filippov uploaded File:Eclipse scp options.png
New page
== Licensing =={{GNU FDLv1.3 }} Andrey.filippov
File:Eclipse scp main.png
Andrey.filippov uploaded File:Eclipse scp main.png
New page
== Licensing =={{GNU FDLv1.3 }} Andrey.filippov
Eclipse CDT projects with bitbake
File:Eclipse builders.png
Andrey.filippov uploaded File:Eclipse builders.png
New page
== Licensing =={{GNU FDLv1.3 }} Andrey.filippov
Eclipse CDT projects with bitbake
Created page with " ├── bitbake-logs -> /home/eyesis/nc393/elphel393/poky/build/tmp/work/cortexa9-neon-poky-linux-gnueabi/apps-gps/1_0-26/temp ├── eclipse_project_setup │ ├..."
New page
├── bitbake-logs -> /home/eyesis/nc393/elphel393/poky/build/tmp/work/cortexa9-neon-poky-linux-gnueabi/apps-gps/1_0-26/temp├── eclipse_project_setup
│ ├── .externalToolBuilders
│ │ └── SCP apps-gps to target.launch
│ ├── .cproject
│ └── .project
├── .externalToolBuilders
│ └── SCP apps-gps to target.launch
├── image -> /home/eyesis/nc393/elphel393/poky/build/tmp/work/cortexa9-neon-poky-linux-gnueabi/apps-gps/1_0-26/image
├── scripts -> ../../scripts/
│ ├── run_bitbake.sh
│ └── used_files.py
├── src
│ ├── .depend
│ ├── exifgen.c
│ ├── exifgen.h
│ ├── garmin.h
│ ├── garminusb2exif.c
│ ├── garminusb2nmea.c
│ ├── imu_setup.php
│ ├── logger_launcher.php
│ ├── log_imu.c
│ ├── Makefile
│ ├── nmea2exif
│ ├── nmea2exif.c
│ ├── nmeagen.c
│ ├── nmeagen.h
│ ├── read_imu_log.php
│ └── start_gps_compass.php
├── sysroots -> /home/eyesis/nc393/elphel393/poky/build/tmp/sysroots
├── .cproject
├── .gitignore
├── LICENSE
├── Makefile
├── .project
├── README.md
└── VERSION Andrey.filippov
Tmp manual
Firmware images
← Older revision Revision as of 23:58, 20 November 2017 (One intermediate revision by the same user not shown)Line 267: Line 267: ==<font color="blue">Firmware images</font>== ==<font color="blue">Firmware images</font>== −* [https://community.elphel.com/files/393/20171115/ '''20171115''']+* [https://community.elphel.com/files/393/20171120/ '''20171120'''] +* [https://community.elphel.com/files/393/20171115/ 20171115] * [https://community.elphel.com/files/393/20170823/ 20170823] * [https://community.elphel.com/files/393/20170823/ 20170823] −* [https://community.elphel.com/files/393/20170802/ 20170802] ==<font color="blue">Other info</font>== ==<font color="blue">Other info</font>== OlegUsing 10359 mux with 10393
Ezynq
Decription
← Older revision Revision as of 21:46, 20 November 2017 (One intermediate revision by the same user not shown)Line 1: Line 1: ==Decription== ==Decription== −[https://github.com/Elphel/ezynq Ezynq] project is started to create a bootloader for systems based on the Xilinx Zynq SoC without the inconvenience of the non-free tools and/or files. The goal is not just to "free" the code, but to provide users with the higher degree of flexibility in fine-tuning of the configuration parameters.+[https://git.elphel.com/Elphel/ezynq Ezynq] project is started to create a bootloader for systems based on the Xilinx Zynq SoC without the inconvenience of the non-free tools and/or files. The goal is not just to "free" the code, but to provide users with the higher degree of flexibility in fine-tuning of the configuration parameters. ====="Free" the code part===== ====="Free" the code part===== Line 68: Line 68: ==Install Ezynq (Kubuntu 14.04)== ==Install Ezynq (Kubuntu 14.04)== <font size='2'> <font size='2'> − git clone https://github.com/Elphel/ezynq.git+ git clone https://git.elphel.com/Elphel/ezynq.git cd ezynq cd ezynq ./install_uboot.sh (edit the toolchain path) ./install_uboot.sh (edit the toolchain path) OlegMeasure OTF of the lens-sensor system
Using 10359 mux with 10393
Poky 2.0 manual
Setup
← Older revision Revision as of 21:53, 16 November 2017 (One intermediate revision by the same user not shown)Line 81: Line 81: ==<font color="blue">Setup</font>== ==<font color="blue">Setup</font>== <font size='2'> <font size='2'> − git clone https://git.elphel.com/Elphel/elphel393.git+ git clone https://git.elphel.com/Elphel/elphel393.git # or git clone git@git.elphel.com:Elphel/elphel393.git # if ssh public key is uploaded cd elphel393 cd elphel393 ./setup.py ./setup.py Line 98: Line 98: 2. run '''bitbake linux-xlnx -c link -f''' 2. run '''bitbake linux-xlnx -c link -f''' </font> </font> −* if rerun '''setup.py''' updates updates all repositories and reruns other procedures.+* if rerun '''setup.py''' updates all repositories and reruns other procedures. <font size='2'> <font size='2'> $ ./setup.py $ ./setup.py Andrey.filippov