Replacement for fw_meta.py commands and also supports unbundling .hex files.
General syntax is:
```
$ mos create-fw-bundle -o fw.zip part1:prop1=val1,prop2=val2,... part2:...
```
Example of building a mos fw bundle for ESP8266:
```
$ mos create-fw-bundle -o fw.zip --platform esp8266 --build-info=build_info.json \
boot:addr=0x0,src=rboot.bin,update=false \
boot_cfg:addr=0x7000,size=0x1000,fill=0xff \
fw:addr=0x100000,src=demo-c.bin \
fs:src=fs.bin,type=fs,addr=0x8000,fs_size=262144,fs_block_size=4096,fs_page_size=256,fs_erase_size=4096
```
Example of converting a HEX file to a bundle:
```
$ mos create-fw-bundle -o fw.zip host:type=host,src=hostfw.hex
```
CL: mos: Add create-fw-bundle command
PUBLISHED_FROM=35f52ea53e4b5900463415257323a4c08cf45deb
Go back to Ubuntu 16.04 and older gcc-arm (4.9.3).
Boot loader just won't run when compiled with newer GCC (7.x).
It's likely that it can be fixed with compile switches but I couldn't figure it out quickly, so going to just downgrade for now to get it back to workign state.
CL: CC3200: Fix boot loader regression
PUBLISHED_FROM=b70b03bd17e03c7dae02328b32b855f3ca3ad6a9
Can be used for cases where device has no networking but mongoose is still needed for its event loop.
CL: mg: Add net_if_null, a no-op net interface
PUBLISHED_FROM=e79b4a8667508bbde1437dda9dad77ce3a3aa630
* Change return type of mg_mgr_poll to return number of events
* Add mg_mgr_min_timer
* Refactor main poll loop to remove LwIP-specific stuff
CL: Refactor mg polling
PUBLISHED_FROM=dc94618b32fa3c84a2f053bd04d134297780ec82
Set CLOSE_IMMEDIATELY flag when destroying conn.
This avoid some races in LWIP adapter.
CL: mg_lwip: Fix race during clean conenction teardown
PUBLISHED_FROM=5c67982390dfaf83527e85d1291f64c6050aa932
A major cleanup, disentangling net_if and ssl_if.
Pulled a lot of common logic into the core and reduced size of net_if implementations.
CL: Mongoose net_if and ssl_if refactoring
PUBLISHED_FROM=29bd4dcb264a1fd96b3dd164e2d880e1c2c0921e
E.g. if `ASSERT_EQ(myfunc(), 123)` fails, `myfunc()` would be invoked again to print the actual value.
This can cause confusion sometimes.
To avoid this, we cast arguments to double, which is wide enough for most cases and we provide a variant for 64 bit value types for when it's not.
We also perform a check and fail if argument to the check results in loss of precision.
CL: none
PUBLISHED_FROM=a14551289d92e8a5dead21d16471ebddebe938a8
To properly fail a test in a subroutine, return value needs to be passed up.
This snippet makes it short.
PUBLISHED_FROM=2f6328b5eb2921a4caa53d8887c02f73a5d817ea