zephyr/ext/hal/ti/cc3200sdk
Gil Pitney 9bc293c827 cc3200: Use peripheral driver library functions from ROM
Previously, CC3200 drivers had two options to use the peripheral
driver library APIs:
1) Build driverlib SDK files in Zephyr, in ext/hal/ti/cc3200/*
2) Link directly with the driverlib.a, from an externally installed
   TI CC3200 SDK.

A new option is added to replace option 2), and is now the default:
3) Use the driverlib functions already provided in ROM.

This enables a savings in code size, which will depend on the
types of device drivers configured and the number of SDK
APIs actually used.

A rom_report build of the shell sample application showed
a savings of about 2kb in code space using this new config option.

Change-Id: Ie1ede6f7aacd23db20f5292e776f1dfeab5c7fe0
Signed-off-by: Gil Pitney <gil.pitney@linaro.org>
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2017-01-12 09:46:25 -06:00
..
driverlib
inc
Kbuild cc3200: Use peripheral driver library functions from ROM 2017-01-12 09:46:25 -06:00
Kconfig cc3200: Use peripheral driver library functions from ROM 2017-01-12 09:46:25 -06:00
Makefile cc3200: Use peripheral driver library functions from ROM 2017-01-12 09:46:25 -06:00
README cc3200: Use peripheral driver library functions from ROM 2017-01-12 09:46:25 -06:00

README

The CC3200 SDK provides a peripheral driver library and hardware
register access header files for the Texas Instruments SimpleLink
CC3200 SoC.

The current version supported in Zephyr is CC3200 SDK V1.2.0, downloaded
from:

	http://www.ti.com/tool/cc3200sdk

Files in driverlib/ and inc/ are copied from an SDK installation
(without modification).

After setting CONFIG_HAS_CC3200SDK=y in Kconfig, there are two methods
for using the peripheral driver library:

1) (Default) Use the driverlib functions in ROM instead of RAM.

TI provides the driver library functions burned into ROM at the factory,
or updated via a service pack patch, thus saving application code space.

For the zephyr shell sample, for example, this resulted in a savings of
about 2Kb in code space.

Setting CONFIG_CC3200SDK_ROM_DRIVERLIB enables all driverlib APIs prefixed by
"MAP_" to vector to those functions already existing in ROM.

See: Section 6.2.2 "Linking User Application with ROM APIs",
     CC3200 Programmer's Guide, www.ti.com/lit/pdf/swru369

2) Use the driver library functions built from the CC3200SDK files in Zephyr.

Setting CONFIG_CC3200SDK_BUILTIN allows building those files within
the Zephyr ext/hal/ti/ subdirectory. Though this will take more code space
than using the ROM driverlib functions, this may be useful for debugging
purposes.

Applications can use the two configurations simultaneously:  For example, calling
APIs without the "MAP_" prefix would call into Zephyr-built driver lib functions in
RAM, while calling APIs with the "MAP_" prefix would call into the ROM.