Those two warnings are optimisation-related
* 110 warns that an always-false if branch has been optimised out
* 126 warns about unreachable code which also gets optimised out
In disabling those warnings, we make the build less cluttered
This was used in the past because sdld was
very verbose when linking banked hex files. New
sdld versions do not exhibit this level of
verbosity and therefore the redirect can be
stopped
The sensinode platform does not support .upload and .serialdump
Their presence in the makefile has confused in the past confused
some users. This commit removes them
The commit also removes the $(OBJECTDIR)/%.rel: %.cS recipe which
is not used by either 8051 platform and is probably broken anyway,
since it has been unmaintained for years
Historically $(OBJECTDIR) was created when Makefile.include is read. A
consequence is that combining "clean" with "all" (or any other build
target) results in an error because the clean removes the object
directory that is required to exist when building dependencies.
Creating $(OBJECTDIR) on-demand ensures it is present when needed.
Removed creation of $(OBJECTDIR) on initial read, and added an order-only
dependency forcing its creation all Makefile* rules where the target is
explicitly or implicitly in $(OBJECTDIR).
This allows us to reduce CODE footprint of SDCC projects
built with --model-huge. Use carefully!
* Added a facility which allows us to enable/disable the
feature from the CPU dir (CC_CONF_NON_BANKED_OPTIMIZATION)
* Added the CC_NON_BANKED keyword to some platform files
(expands to __nonbanked)
* Started using this for some examples
This new approach (CLOCK_CONF_ACCURATE=0) was not as inaccurate
as originally thought. In fact, it has pretty much the same
accuracy as the old, stack-hungry version.
* Renamed the define from CLOCK_CONF_ACCURATE (1: old) to
CLOCK_CONF_STACK_FRIENDLY (1: new) to stop implying
that one is more accurate than the other.
* Using CLOCK_CONF_STACK_FRIENDLY by default.
* Bit-Addressable SFRs are now accessed as such,
instead of (N)OR-ing the byte
* A routine was declared as CCIF but not defined as such. Fixed
* Deleted a leftover duplicate define
* Formatting
* Comment updates and clarifications
Since the introduction of a purpose-written routine, the old
generic one (which was written in asm) was never being used.
There was a configuration directive which allowed us to switch
between the two. All references to this configuration directive
have also been removed.
functions for converting between host and network byte order. These
names are the de facto standard names for this functionality because
of the original BSD TCP/IP implementation. But they cause problems for
uIP/Contiki: some platforms define these names themselves (Mac OS,
most notably), causing compilation problems for Contiki on those
platforms.
This commit changes all htons to uip_htons instead. Same goes for
htonl, ntohs, and ntohl. All-caps versions as well.
- First in 8051def.h, it appears the uip_arch-asm.S file was copied from z80 and am unsure it will work properly. I modified the 8051def.h to prevent the UIP code from using these routines.
- In dma.c the config routine provides access to all of the DMA channel options, except for the word mode flag. In order to maintain compatibility with any existing code I created a second routine and converted the original routine into a wrapper routine with a fixed word mode value.
- uart.c::uart0_init was missing blocking access to the higher baud rates. I am not sure why, so I corrected this.
- I also copied over to header files that provide some useful macros from the msp430 cpu. The files are lpm.h and hwconf.h. The lpm.h is for switching power modes, I think. The hwconf.h has various macros for configuring port I/O. By porting these files the led/button api's can be ported with minimal modifications.