Imaging solutions with Free Software & Open Hardware

Who's online

There are currently 0 users online.

11/28/17 [vdt-plugin][] by AndreyFilippov: after auto

Elphel GIT logs - Tue, 11/28/2017 - 14:44
AndreyFilippov committed changes to the Elphel git project :
after auto

11/28/17 [vdt-plugin][] by AndreyFilippov: added files to be generated by patching VEditor

Elphel GIT logs - Tue, 11/28/2017 - 14:38
AndreyFilippov committed changes to the Elphel git project :
added files to be generated by patching VEditor

11/28/17 [vdt-plugin][] by AndreyFilippov: replaced origin (github -> self hosted)

Elphel GIT logs - Tue, 11/28/2017 - 14:36
AndreyFilippov committed changes to the Elphel git project :
replaced origin (github -> self hosted)

11/28/17 [vdt-plugin][] by AndreyFilippov: Updating from full repo

Elphel GIT logs - Tue, 11/28/2017 - 14:28
AndreyFilippov committed changes to the Elphel git project :
Updating from full repo

Features 393

Wiki Recent Changes - Sat, 11/25/2017 - 17:21

← Older revision Revision as of 00:21, 26 November 2017 Line 7: Line 7:  |} |}    −[http://www3.elphel.com Elphel 10393 series] are highly customizable high performance, network, multi-sensor (multi-) camera systems.+Elphel 393 series are highly customizable high performance, network, multi-sensor (multi-) camera systems.     To ensure the freedom of our customers and the sustainable development of the Elphel project all our developments are covered by the GNU/GPL v3 License. To ensure the freedom of our customers and the sustainable development of the Elphel project all our developments are covered by the GNU/GPL v3 License. Andrey.filippov

11/24/17 [meta-elphel393][rocko] by Oleg Dzhimiev: -libexec

Elphel GIT logs - Fri, 11/24/2017 - 15:06
Oleg Dzhimiev committed changes to the Elphel git project :
-libexec

11/24/17 [meta-elphel393][rocko] by Oleg Dzhimiev: 1.fixed core-image dep package name 2.fixed extra files list for lighttpd

Elphel GIT logs - Fri, 11/24/2017 - 13:39
Oleg Dzhimiev committed changes to the Elphel git project :
1.fixed core-image dep package name 2.fixed extra files list for lighttpd

11/24/17 [meta-elphel393][rocko] by Oleg Dzhimiev: updated device tree recipe and fixed linux-xlnx

Elphel GIT logs - Fri, 11/24/2017 - 13:07
Oleg Dzhimiev committed changes to the Elphel git project :
updated device tree recipe and fixed linux-xlnx

11/22/17 [meta-elphel393][rocko] by Oleg Dzhimiev: +commented out old do_bundle_initramfs

Elphel GIT logs - Wed, 11/22/2017 - 19:28
Oleg Dzhimiev committed changes to the Elphel git project :
+commented out old do_bundle_initramfs

11/22/17 [linux-elphel][rocko] by Oleg Dzhimiev: updated function name

Elphel GIT logs - Wed, 11/22/2017 - 18:54
Oleg Dzhimiev committed changes to the Elphel git project :
updated function name

11/22/17 [linux-elphel][rocko] by Oleg Dzhimiev: mii_bus

Elphel GIT logs - Wed, 11/22/2017 - 18:37
Oleg Dzhimiev committed changes to the Elphel git project :
mii_bus

11/22/17 [linux-elphel][rocko] by Oleg Dzhimiev: updated

Elphel GIT logs - Wed, 11/22/2017 - 18:31
Oleg Dzhimiev committed changes to the Elphel git project :
updated

11/22/17 [meta-elphel393][rocko] by Oleg Dzhimiev: removed emacps patch

Elphel GIT logs - Wed, 11/22/2017 - 18:21
Oleg Dzhimiev committed changes to the Elphel git project :
removed emacps patch

11/22/17 [linux-elphel][rocko] by Oleg Dzhimiev: moved patch to tree

Elphel GIT logs - Wed, 11/22/2017 - 18:19
Oleg Dzhimiev committed changes to the Elphel git project :
moved patch to tree

11/22/17 [linux-elphel][rocko] by Oleg Dzhimiev: updated

Elphel GIT logs - Wed, 11/22/2017 - 17:45
Oleg Dzhimiev committed changes to the Elphel git project :
updated

Developing with Eclipse CDT and Yocto – Linux kernel and applications

Elphel Development Blog - Wed, 11/22/2017 - 17:32

Elphel uses embedded GNU/Linux distribution based on Yocto. For most of our development (excluding just mechanical and PCB design) we use universal Eclipse IDE: for FPGA development, Linux kernel drivers development, embedded applications and web applications, for editing LaTeX texts. And we use this popular IDE for delivering pre-configured projects to our users to make it easier for them to start efficient modification of the initial camera software and then initiate the new projects.

We tried to use Yocto plugin but were not able to configure it for kernel development, and the kernel drivers development is one of the the largest and probably is the most difficult part of the camera software development, the part were we need Eclipse IDE assistance most.

One of the major challenges of using code analysis tools of Eclipse CDT with the Linux kernel is that there are so many files that define the same names. These files are selected during the build process, and for correct code analysis Eclipse CDT has to reproduce rather complex Linux system of configuration, multi-level macro defines to resolve references in the source code. We were able to solve this problem (to some extent), but it required a fair amount of manual tweaking and was not universal – developing applications would require different modifications.

Figure 1. Excluded source directories in the Navigator (left) panel are crossed out.

At the same time all the software components in the distribution are built with the powerful Bitbake build system, and existing ”recipes” and the invoked Makefiles “know” which files to use. Following DRY (“don’t repeat yourself”) principle we removed references to “make” command in the project build and replaced them with bitbake command “bitbake <target> -c compile -f” running in the Eclipse console. As we did that for the main build command (CDT Builder) the console output is parsed for errors and warnings, results appear as problem markers in “Problems” view and in the source code. To help Eclipse CDT (and users who navigate the source code with it) limit attention to only files and directories that are actually used in the bitbake build process we implemented the following trick (and coded it as used_files.py script):

  • Initialize source/headers directories with bitbake, so it “knows” that everything needs to be rebuilt for the project
  • Create a list of the source files (resolving symlinks when needed) and “touch” them, setting modification timestamps. This action prepares the files so the next (first after modification) file access will be recorded as access timestamp. Record the current time.
  • Wait a few seconds to reliably distinguish if each file was accessed after modification
  • Run bitbake build (“bitbake <target> -c compile -f”)
  • Scan all the files from the previously created source list and generate ”include_list” of those that were accessed during the build process.
  • As CDT accepts only “exclude” filters in this context, recursively combine full source list and include_list to generate “exclude_list” pruning all the branches that have nothing to include and replacing them with the full branch reference
  • Apply the generated exclusion list to the CDT project file “.cproject”

In the case of such complex system as Linux kernel there still remain several incorrectly resolved links, because different parts of the code may use different header files that share the same names, but there are not many of them, they can be handled manually.

Elphel wiki page Eclipse_CDT_projects_with_bitbake has more details on using Elphel camera projects with Eclipse IDE.

11/22/17 [linux-elphel][rocko] by Oleg Dzhimiev: updated

Elphel GIT logs - Wed, 11/22/2017 - 17:29
Oleg Dzhimiev committed changes to the Elphel git project :
updated

11/22/17 [linux-elphel][rocko] by Oleg Dzhimiev: uartps

Elphel GIT logs - Wed, 11/22/2017 - 17:03
Oleg Dzhimiev committed changes to the Elphel git project :
uartps

11/22/17 [linux-elphel][rocko] by Oleg Dzhimiev: update micron driver

Elphel GIT logs - Wed, 11/22/2017 - 16:53
Oleg Dzhimiev committed changes to the Elphel git project :
update micron driver

11/22/17 [linux-elphel][rocko] by Oleg Dzhimiev: udpated

Elphel GIT logs - Wed, 11/22/2017 - 16:23
Oleg Dzhimiev committed changes to the Elphel git project :
udpated

Pages

Subscribe to www3.elphel.com aggregator