It's not me... it's broken

I posted on the mbed forum and got some help from Stanly88 there

He at least confirmed even though he built mbed-client-examples before, it was now also broken for him too.

After some headscratching about the build problems, I realized the stuff in git is generally a lot more advanced than some of the package JSON is asking for as dependencies.

After I forced the dep versions to match what's in git, it also became clear that what yotta install can fetch is still lower than the versions in git. I'm not sure if that's because someone's JSON was making it fetch old things from git or something else.

In the end I replaced what it had fetched down ./yotta_modules for uvisor-lib and mbed-example-network with git clones of those projects, and then the dependency stuff was finally satisfied.

But there were two kind of compile error left.


Basically the stuff in git currently seems to have not been tested with YOTTA_CFG_UVISOR_PRESENT absent, as it is on K64F.

The first problem was just a missing include, but that also was conditionally included based on YOTTA_CFG_UVISOR_PRESENT.

The second set of problems were caused by the headers declaring fallthrough functions in the preprocessor, AND declaring functions to handle the same thing in code. I added a patch to defeat building the code if no YOTTA_CFG_UVISOR_PRESENT, since the preprocessor way is probably smaller and faster.


After that it could build and run.

The mbed-client-examples app is tied up with Arm's cloud solution stuff, which is not what I am interested in at the moment, but it is able to run the ethernet and acquire an IP over DHCP. So that has got the network basics working finally.

What we learned this time

  • It's beta quality as they say, this kind of problem is because it's being worked on heavily... using git versions and not every variation of it is getting tested

  • We can replace dirs down ./yotta_modules that came in by yotta install (from the repository) with git clones of the same modules from github, and work on them like that conveniently

  • I pushed my modified trees to github and sent pull requests for the patches.

  • Plus or minus some fixes, on K64F it works

Next post about mbed