The official git repository for OSD-Contiki, the open source OS for the Internet of Things
Find a file
Andre Guedes c9020d95e7 x86: Build release image
This patch adds support for building release images. The main difference
between release images and default images is that the former is optimized
for size while the latter is "optimized" for debugging. To build a release
image, the BUILD_RELEASE variable should be set to 1. For instance, the
following command build a release image from the hello-world application:
$ cd examples/hello-world && make TARGET=galileo BUILD_RELEASE=1

To optimize for size we use the '-Os' option from gcc. This option also
enables the strict aliasing optimization. This generates lots of warning
messages since we use the '-Wall' option and lots of code in core/net/
break the strict-aliasing rules. Some test have shown that the strict
aliasing optimization it not taking effect in the final binary. For that
reasons, this patch manually disables the optimization. Also, the release
image is stripped.

For the sake of comparison, below follows the output from 'wc' and 'size'
for both debugging (default) and release images.

Default image:
$  wc -c hello-world.galileo
71112 hello-world.galileo
$ size hello-world.galileo
   text    data     bss     dec     hex filename
  20379    1188   12808   34375    8647 hello-world.galileo

Release image:
$ wc -c hello-world.galileo
26320 hello-world.galileo
$ size hello-world.galileo
   text    data     bss     dec     hex filename
  18146    1156   12808   32110    7d6e hello-world.galileo
2015-12-21 08:06:14 -02:00
apps Adaptive time synchronization for TSCH 2015-12-07 11:51:41 +01:00
core Merge pull request #1285 from simonduq/pr/tsch 2015-12-07 14:29:10 +01:00
cpu x86: Build release image 2015-12-21 08:06:14 -02:00
dev Merge pull request #1168 from bthebaudeau/enc28j60-fixes-and-improvements 2015-12-15 00:14:02 +01:00
doc Merge pull request #1133 from bkozak-scanimetrics/cc-gcc 2015-12-05 00:39:59 +01:00
examples examples: Add all-timers example 2015-12-21 08:06:14 -02:00
lib/newlib Implement generic Newlib syscalls 2015-12-16 19:50:49 +01:00
platform x86: Build release image 2015-12-21 08:06:14 -02:00
regression-tests jn516x: remove temporary adjustements for compilation in a 802.15.4e-free Contiki 2015-12-07 11:51:50 +01:00
tools fixed make login for Zoul on MAC 2015-12-19 10:28:30 +01:00
.gitattributes Add binary files file extension 2015-10-22 16:19:39 +02:00
.gitignore gitignore: Add platform/galileo/bsp/libc/Makefile.libc 2015-12-21 08:06:14 -02:00
.gitmodules Align to current master 2015-09-04 17:01:04 +02:00
.travis.yml Merge pull request #1219 from simonduq/jn516x-port 2015-09-25 12:09:52 +02:00
CONTRIBUTING.md Updated CONTRIBUTING.md to reflect Contiki's new merging policy 2015-08-18 22:06:56 +02:00
LICENSE Removed the explicit year 2012 to make it more generic 2012-10-25 23:08:54 +02:00
Makefile.include Makefile.include: Remove unused MODULESSUBST 2015-06-01 22:09:58 +02:00
README-BUILDING.md Rename to md 2013-03-26 23:15:37 +01:00
README-EXAMPLES.md Several minor consistency improvements. 2013-07-31 00:55:31 +02:00
README.md Travis icon in README.md: show build status of the current master rather than latest build status (can be any pull request) 2015-08-19 09:21:38 +02:00

The Contiki Operating System

Build Status

Contiki is an open source operating system that runs on tiny low-power microcontrollers and makes it possible to develop applications that make efficient use of the hardware while providing standardized low-power wireless communication for a range of hardware platforms.

Contiki is used in numerous commercial and non-commercial systems, such as city sound monitoring, street lights, networked electrical power meters, industrial monitoring, radiation monitoring, construction site monitoring, alarm systems, remote house monitoring, and so on.

For more information, see the Contiki website:

http://contiki-os.org