Technical Communications Style Guidelines FEB02 Blue Lab V3.2 CS 110737 RN V3.6 Release Note

User Manual: BlueLab v3.2

Open the PDF directly: View PDF PDF.
Page Count: 60

DownloadTechnical Communications Style Guidelines FEB02 Blue Lab V3.2 CS-110737-RN V3.6 Release Note
Open PDF In BrowserView PDF
_äìÉi~Ä»
BlueLab v3.6
Software Release Note
December 2006

CSR
Cambridge Science Park
Milton Road
Cambridge CB4 0WH
United Kingdom
Registered in England 4187346
Tel: +44 (0)1223 692000
Fax: +44 (0)1223 692001
www.csr.com

CS-110737-RNP1

© CSR plc 2006
This material is subject to CSR’s non-disclosure agreement.

Contents

Contents
1

Introduction .................................................................................................................................................... 3
1.1 BlueLab3 ................................................................................................................................................. 3
1.2 BlueLab v3.6............................................................................................................................................ 3
1.3 New Features in v3.6 Relative to v3.5 ..................................................................................................... 4
1.4 Requirements .......................................................................................................................................... 4

2

CSR Chips ...................................................................................................................................................... 5

3

Release Functionality .................................................................................................................................... 6
3.1 xIDE

..................................................................................................................................................... 6

3.3 Support Libraries ..................................................................................................................................... 6
3.4 Application Libraries ................................................................................................................................ 6
3.5 Kalimba DSP Libraries ............................................................................................................................ 7
3.6 Example Applications .............................................................................................................................. 7
4

Firmware ......................................................................................................................................................... 9

5

Major Changes in BlueLab3 Relative to BlueLab2 .................................................................................... 10
5.1 Tool Changes ........................................................................................................................................ 10
5.2 Library Changes .................................................................................................................................... 10
5.3 Application Changes.............................................................................................................................. 10

6

Testing .......................................................................................................................................................... 11

7

Document References ................................................................................................................................. 12

Appendix A

Known Issues ........................................................................................................................... 13

Appendix B

Issues Resolved in BlueLab v3.6............................................................................................ 17

Appendix C

Issues Resolved in BlueLab v3.5............................................................................................ 24

Appendix D

Issues Resolved in BlueLab v3.4............................................................................................ 31

Appendix E

Issues Resolved in BlueLab v3.3............................................................................................ 38

Appendix F

Issues Resolved in BlueLab v3.2............................................................................................ 45

Appendix G

Issues Resolved in BlueLab v3.1............................................................................................ 56

Terms and Definitions ........................................................................................................................................ 58
Document History ............................................................................................................................................... 60

List of Tables
Table A.1: Known Issues ...................................................................................................................................... 14
Table A.2: Known Issues (xIDE) ........................................................................................................................... 15
Table A.3: Missing Features ................................................................................................................................. 16
Table A.4: Known Issues in BlueSuite v1.23 Tools Shipped with BlueLab v3.6.................................................... 16
Table B.1: Issues Resolved in BlueLab v3.6 ......................................................................................................... 22
Table B.2: Summary of BlueSuite v1.23 Resolved Issues .................................................................................... 23
Table C.1: Issues Resolved in BlueLab v3.5......................................................................................................... 30
Table D.1: Issues Resolved in BlueLab v3.4......................................................................................................... 37
Table E.1: Issues Resolved in BlueLab v3.3 ......................................................................................................... 44
Table F.1: Issues Resolved in BlueLab v3.2 ......................................................................................................... 55
Table G.1: Issues Resolved in BlueLab v3.1 ........................................................................................................ 57

CS-110737-RNP1

© CSR plc 2006
This material is subject to CSR’s non-disclosure agreement.

Page 2 of 60

_äìÉi~Ä»=îPKS Software Release Note

3.2 Toolchain ................................................................................................................................................. 6

Introduction

1

Introduction

This document describes _äìÉi~Ä»=îPKS, the most recent release of BlueLab3, CSR's software development
®
kit for producing embedded applications for CSR’s Bluetooth wireless technology chips. Some additional
documentation is included with BlueLab; see the manual available inside xIDE, the integrated development
environment for BlueLab and the accompanying PDFs.

1.1

BlueLab3

BlueLab v3.0 introduced true on-chip, real-time debugging for the first time on any Bluetooth chip. There is no
need to stop the chip running to get debug data. It is possible to watch traffic in real-time while the chip runs. The
development environment monitors and records messages between the VM application and the upper layers of
the Bluetooth stack. The resulting record can be as useful as, but much easier to obtain than, an air trace when
debugging complex problems such as interoperability between two Bluetooth devices.
These features make BlueLab3 by far the most flexible and functional set of tools available for any Bluetooth chip
today.
The new tools introduced with BlueLab3 make it easier to take advantage of its much improved and expanded
set of software libraries. These libraries improve performance and consistency for functions such as event
handling. Crucially, they are designed from the ground up to support applications that use multiple simultaneous
connections. This function is essential for cutting-edge Bluetooth products like wireless stereo headphones with
call handling.
The library changes mean that applications written for BlueLab2 must be partially rewritten to run under
BlueLab3. Rewriting the code need not be an arduous task because the new libraries automate many common
functions. As a result BlueLab3 applications are considerably simpler than before. It is generally only necessary
to write a user interface to sit above the highly functional libraries provided with the Software Development Kit
(SDK).
The initial releases of BlueLab3 were focussed on wireless headphones with call handling (combined
Headset/Hands-Free and Audiovisual profiles) because the ability to support multipoint connections is essential
for these products.

1.2

BlueLab v3.6

BlueLab v3.6 consolidates the support for BlueCore5 introduced in BlueLab v3.5. It includes development quality
firmware for BlueCore5-Multimedia, including all the features planned for the corresponding production firmware
late in 2006.
BlueLab3 now supports more generations of BlueCore and has support for more profiles than BlueLab2, making
it the preferred environment for the development of embedded applications on BlueCore.

CS-110737-RNP1

© CSR plc 2006
This material is subject to CSR’s non-disclosure agreement.

Page 3 of 60

_äìÉi~Ä»=îPKS Software Release Note

BlueLab3 has the same virtual machine (VM) architecture that has been successfully implemented in the vast
majority of single-chip Bluetooth products, including around 80% of all headset designs. The VM isolates user
code in a sandbox where it cannot interfere with the basic Bluetooth operation of the chip. This allows the use of
pre-qualified low-level stack firmware, greatly simplifying Bluetooth qualification process and reducing time to
market. The user does not need to qualify complex low-level firmware. CSR does this.

Introduction

1.3

New Features in v3.6 Relative to v3.5

In addition to the changes listed in Appendix B BlueLab v3.6 introduces the following new features:

ƒ

Application changes:

ƒ

The stereo_headset reference application now supports eSCO and the DEV-PC 1645
development board.

ƒ
ƒ

1.4

Tool enhancements:

ƒ

VM library and object files are now much smaller, reducing both disk space and build times.

ƒ

xIDE now loads VM debug symbols more quickly.

ƒ

Significant improvements have been made to build times for large DSP applications.

Kalimba DSP library changes:

ƒ

Further improved support for Bluecore5-Multimedia as well as Bluecore3-Multimedia in the DSP
libraries.

ƒ

Additions to the flash library to be able to request the flash address of a file in the file-system given
its VM file handle.

ƒ

The message library now supports explicitly sending a long or short message. This frees up a little
more program memory (PM) in applications that don’t need to send long messages.

Requirements

This release of BlueLab runs on machines operating on Windows 2000 SP4 or later and Windows XP SP1 or
later.
A minimum of 256MB memory (RAM) is required for satisfactory performance. However, CSR recommend
running BlueLab on a machine with 512MB (RAM) or more
The development tools access BlueCore through the Serial Peripheral Interface (SPI); therefore, a board
supporting this (such as Casira™ or other CSR development board) is also required.

CS-110737-RNP1

© CSR plc 2006
This material is subject to CSR’s non-disclosure agreement.

Page 4 of 60

_äìÉi~Ä»=îPKS Software Release Note

ƒ

PBAP example applications have been added.

CSR Chips

2

CSR Chips

Applications produced with this development kit will run on CSR’s _äìÉ`çêÉPI _äìÉ`çêÉQ and=_äìÉ`çêÉR
chips, with a firmware build supporting Virtual Machine (VM) v7.5. Suitable production firmware for these chips is
expected during late 2006 (from the 22.x branch and later.)
Applications can also be built for BlueCore2, but this release of BlueLab does not include firmware for BlueCore2.
The last planned production firmware release supporting BlueCore2 was 21f, which supports VM v7.5 under the
restrictions outlined in the 21f release note.
Notes:

The firmware builds supplied with this release all require minimum 6Mbit devices. See Table A.1.

_äìÉi~Ä»=îPKS Software Release Note

CS-110737-RNP1

© CSR plc 2006
This material is subject to CSR’s non-disclosure agreement.

Page 5 of 60

Release Functionality

3

Release Functionality

3.1

xIDE

This release of BlueLab includes CSR’s integrated development environment, xIDE, supporting development and
debugging of both VM applications (in C) and Kalimba DSP code (in assembler).

3.2

Toolchain

BlueLab includes a set of development tools for VM applications:
Compiler based on GCC v3.3.3 and targeting the BlueCore VM

ƒ

Supporting assembler, librarian and linker

ƒ

Libraries providing access to BlueCore specific features

ƒ

Libraries providing implementations of selected standard ANSI functions

BlueLab also includes development tools for Kalimba DSP applications written in assembler:

ƒ

Assembler, with linking ability

ƒ

Tools for embedding Kalimba DSP applications and data in BlueCore’s read-only file system

ƒ

Libraries providing commonly required services

ƒ

Matlab tools to aid debugging of Kalimba DSP applications and libraries

Additional tools (from BlueSuite™) are provided for downloading applications and updating the Persistent Store.

3.3

Support Libraries

In addition to the standard libraries, BlueLab includes libraries specific to BlueCore and Bluetooth:

ƒ

Battery library sampling voltage level

ƒ

Message library for splitting applications into communicating tasks

ƒ

Panic library for detecting errors and terminating the application

ƒ

Service and region libraries for searching SDP records

ƒ

MD5 library to support authentication in PBAP (Phonebook Access Profile)

3.4

Application Libraries

The following libraries build on BlueStack to simplify the production of Bluetooth applications:

ƒ

Connection library

ƒ

Can create RFCOMM, L2CAP and SCO connections

ƒ

Manages security settings and link policy

ƒ

AV profile libraries supporting applications using the Bluetooth AV profiles

ƒ

HFP library supporting applications using the headset and hands-free profiles

ƒ

SPP library supporting applications using both roles of the serial port profile

ƒ

GOEP library supporting the client and server role of the generic object exchange profile underlying
OBEX

ƒ

FTPC and FTPS libraries implementing the client and server side of the file transfer profile using GOEP

ƒ

OPPC and OPPS libraries implementing the client and server side of the object push profile

ƒ

AGHFP library supporting the audio gateway profile

CS-110737-RNP1

© CSR plc 2006
This material is subject to CSR’s non-disclosure agreement.

Page 6 of 60

_äìÉi~Ä»=îPKS Software Release Note

ƒ

Release Functionality

ƒ

HID library supporting the human interface device profile

ƒ

DUN library supporting the dial up networking profile

ƒ

PBAP library supporting the phonebook access profile

3.5

Kalimba DSP Libraries
ƒ

ƒ

Timers

ƒ

Messages (now includes long message support)

ƒ

Interrupts

ƒ

Connection buffers

ƒ

cbuffer operators (cbops) library: handles copying of data from a source buffer to a destination
buffer with optional processing of the data in a simple linked list of operators-type way

ƒ

Profiling

ƒ

Flash access (functions to aid reading of flash memory from the DSP), also running code from
flash on Bluecore5-Multimedia

ƒ

PS key reading from the DSP

Audio compression CODEC libraries

ƒ

sbc library: mandatory CODEC SBC (Sub-band Coding), both encoder and decoder, for the
Bluetooth AV profiles.

ƒ

mp3 library: an mp3 decoder supporting the lower sample rate extensions of MPEG2/2.5

ƒ

codec library: handles streaming audio over Bluetooth using the selected audio compression CODEC
(sbc, mp3 etc)

ƒ

Math library: optimised fft, ifft, sin, and sqrt functions

ƒ

sco_process library: eases the creation of applications that handle the processing of SCO audio streams

3.6

Example Applications

The following example applications are supplied.
Note:

These are for demonstration purposes only and are intended as the starting point for customers’
development effort.
On multimedia variants of BlueCore

ƒ

stereo_headset application implementing both a headset and a stereo AV sink, including an
evaluation implementation of cVc (Clear Voice Capture) echo cancellation and noise reduction software.

Note:

The stereo_headset application can be configured for use with DEV-PC1645, DEV-PC1508 and
DEV-PC1442 development boards.

ƒ

a2dp_source_dongle implements an AV source, taking audio from one of:
ƒ

internal stereo CODECs

ƒ

an external Wolfson CODEC

ƒ

USB, enumerating as USB speakers

CS-110737-RNP1

© CSR plc 2006
This material is subject to CSR’s non-disclosure agreement.

Page 7 of 60

_äìÉi~Ä»=îPKS Software Release Note

ƒ

Core library – basic low-level routines:

Release Functionality

Targeting BlueCore3-Audio Flash and BlueCore4-Audio Flash

ƒ

headset application implementing a mono headset.

Note:

It is also possible to use this application on older BlueCore variants, but modifications will be required to
remove calls to support the charger and other features which are specific to these versions of BlueCore.
Targeting BlueCore variants running HID or unified versions of Firmware

ƒ

hid_mouse

ƒ

hid_keyboard

ƒ

hid_dongle

ƒ

spp_dev_a and spp_dev_b implementing role A, or role B, of the serial port profile

ƒ

ftp_server

ƒ

obex_server

ƒ

opp_server

ƒ

pbap_client

ƒ

pbap_server

Example applications are also provided demonstrating:

ƒ

routing of SCO data through the Kalimba DSP: sco_dsp and sco_master applications

ƒ

use of the SBC encoder and decoder libraries: test_sbcloopback application

ƒ

use of the mp3 decoder library: test_mp3decoder application

ƒ

sending long messages between the Kalimba DSP and VM: kalimba_long_message_example
application

ƒ

accessing flash memory from the Kalimba DSP: kalimba_flash_access_example application

ƒ

generating of test tones: test_tonegen application

ƒ

use of the FTPC, GOEP and OPPC libraries: ftpc, goep, and oppc applications

CS-110737-RNP1

© CSR plc 2006
This material is subject to CSR’s non-disclosure agreement.

Page 8 of 60

_äìÉi~Ä»=îPKS Software Release Note

On all variants of BlueCore:

Firmware

4

Firmware

CSR’s policy is to distribute, with BlueLab, a selection of firmware builds whose sole purpose is the development
of applications. Before going into production the developer must obtain from CSR Bluetooth-qualified production
firmware (which they can use in place of the development firmware supplied with BlueLab). This is a mandatory
part of the qualification process.
This release of BlueLab v3.6 includes development firmware for use with BlueCore3-Audio/Flash,
BlueCore3-Multimedia, BlueCore4-External, BlueCore4-Audio/Flash and BlueCore5-Multimedia. See Table A.1:
Hardware

Flash
Size

Space in
filesystem

HID

RFCOMM

DFU

unified_kalimba

BC3-multimedia

8Mbit

148Kw

Yes

Yes

Yes

enhanced_kalimba(1)

BC3-multimedia

8Mbit

144Kw

Yes

Yes

Yes

unified_coyote

BC4-external

8Mbit

148Kw

Yes

Yes

Yes

compact_paddywack

BC3-audio flash

6Mbit

128Kw

No

Yes

No

hid_paddywack

BC3-audio flash

6Mbit

140Kw

Yes

No

No

compact_jumpinjack

BC4-audio flash

6Mbit

116Kw

No

Yes

No

hid_jumpinjack

BC4-audio flash

6Mbit

128Kw

Yes

No

No

unified_elvis

BC5-multimedia

8Mbit
16Mbit
32Mbit

156Kw
(+1024Kw)
(+3072Kw)

Yes

Yes

Yes

(1)

This enhanced firmware has partial support for EDR but cannot be qualified to the v2.0 + EDR Bluetooth
Specification.
Table A.1: Development Firmware Included with BlueLab v3.6

Notes:

The hardware type is detected automatically by xIDE, unless explicitly set for the project.
Choose between compact, unified, hid and enhanced firmware by using the project properties within xIDE.
BlueLab applications are limited to, at most, 64Kw of code space and 24Kw of constants; they must also fit in
the read-only file system along with other files used by the application, such as any DSP code used by
multimedia applications.
Available space in the filesystem may decrease between development firmware provided with BlueLab and
the corresponding production firmware.
Customers using early revision-A samples of BlueCore5-Multimedia should upgrade to revision-B. The
firmware supplied with BlueLab 3.6 does not work on rev-A parts. If automatic hardware detection is used
with rev-A parts, BlueLab reports that it cannot find suitable firmware.
See also the notes in section 2.

CS-110737-RNP1

© CSR plc 2006
This material is subject to CSR’s non-disclosure agreement.

Page 9 of 60

_äìÉi~Ä»=îPKS Software Release Note

Firmware name

Major Changes in BlueLab3 Relative to BlueLab2

5

Major Changes in BlueLab3 Relative to BlueLab2

BlueLab3 builds on many years of experience with BlueLab1 and BlueLab2. Many components have been
redesigned and replaced to make it easier and faster to build the sort of applications CSR’s customers are now
working on.

5.1

Tool Changes

The most visible change in BlueLab3 is the addition of xIDE, a complete integrated development environment.
xIDE allows projects to be created, code to be edited, VM applications to be compiled, and Kalimba DSP code to
be assembled within a single environment.

xIDE supports on-chip debug of applications over BlueCore’s SPI debug interface, making it possible to debug
applications which take control of the USB or UART interface on BlueCore. Such applications include serial-cable
replacement and USB dongles.
The Matlab-based kalasm from BlueLab2.85 and later has also been replaced by a new version, kalasm2.
A new C compiler based on gcc3.3.3 has replaced the gcc 2.95 compiler used in BlueLab2 and typically yields a
10% improvement in code density.

5.2

Library Changes

The most significant change in BlueLab3 is the introduction of the new connection library which supports any
combination of RFCOMM, L2CAP and SCO connections (and, soon, TCP and UDP) serving multiple profiles. For
example, a single application implementing both AV and HF profiles is now possible. (The single connection and
single profile limitations imposed by the cm_rfcomm library in BlueLab2 no longer apply.)
The lower level libraries have been completely rewritten to support the new connection library. Notification of
asynchronous events, either from the firmware or from lower-level libraries, is now uniformly handled by the
delivery of messages. Tasks are now dynamically created and combine message handlers with local state. The
scheduler library in BlueLab2 has been replaced by a simplified message loop, cutting latency on message
delivery by a factor of five.
The upper level libraries, which correspond to Bluetooth profiles, have also been completely rewritten as tasks
which use the new connection library. This makes it possible to combine multiple profiles in a single application.
For example an application can now open multiple SPP connections simply by creating multiple instances of the
SPP profile.

5.3

Application Changes

BlueLab2 and BlueLab3 applications look significantly different. In general a BlueLab3 application is much
simpler than the corresponding BlueLab2 application, especially when multiple connections or profiles are being
used. A typical BlueLab3 application simply arbitrates between the user-interface logic and the profile instances it
creates.
However, the extensive changes to the libraries make it impractical for the same code to work with both BlueLab2
and BlueLab3. An existing BlueLab2 application will have to be partly rewritten to work with BlueLab3.

CS-110737-RNP1

© CSR plc 2006
This material is subject to CSR’s non-disclosure agreement.

Page 10 of 60

_äìÉi~Ä»=îPKS Software Release Note

xIDE replaces the Java-based appdebug from BlueLab2. It also replaces the Matlab-based kaldbg which was
provided as part of BlueLab v2.85 and later. The requirement to install Cygwin and Java has also been
eliminated.

Testing

6

Testing

BlueLab v3.6 has been in use within CSR throughout its development. Furthermore, explicit testing has covered:

ƒ

Installation (and de-installation) on all supported platforms

ƒ

Component testing of the connection library and profile libraries

ƒ

Tools shared with the BlueSuite 1.23 release including PSTool and BlueFlash

ƒ

Testing of BlueStack, the firmware layers above HCI including RFCOMM and L2CAP

Appendix A lists known issues. CSR welcomes reports of any additional issues through official support channels.

_äìÉi~Ä»=îPKS Software Release Note

CS-110737-RNP1

© CSR plc 2006
This material is subject to CSR’s non-disclosure agreement.

Page 11 of 60

Document References

7

Document References

Document:

Reference, Date:

Specification of the Bluetooth System

Core Specification v2.0 + EDR 4 November 2004

Headset Profile

Headset Profile Part K:6, v1.1, 22 February 2001

Hands-free Profile

Hands-free Profile, v1.0, 29 April 2003

BlueSuite v1.23 Software Release Note

CSR reference CS-110443-RN

a guide to BlueLab Command Line Tools

CSR reference CS-101506-UG

_äìÉi~Ä»=îPKS Software Release Note

CS-110737-RNP1

© CSR plc 2006
This material is subject to CSR’s non-disclosure agreement.

Page 12 of 60

Known Issues

Appendix A

Known Issues

This section lists currently known issues for BlueLab v3.6. The Severity column gives a subjective assessment
(Cosmetic, Minor, Major) of how severely each issue may affect the use of BlueLab v3.6.
The following items are known problems with the functionality of components which are new to BlueLab3.
Severity

B-2844

Minor

It is not currently possible to build a BlueLab library from within xIDE; this must be
done using the shortcut placed in the Start Menu, or Makefiles from the command
line.

B-3740

Minor

If an error occurs while building the BlueLab libraries from the start menu, the window
is closed losing the error messages. (Invoking the same command from the
command-line is an effective workaround.)

B-4221

Minor

BlueLab3 is missing library routines necessary to handle long long types.

B-4222

Minor

gcc3 -O2 and -O3 optimisation levels are known to generate incorrect code.

B-4264

Cosmetic

B-4314

Minor

The a2dp_source_dongle application can sometimes take longer than the
mandated 100ms to respond to an AVRCP transaction when streaming audio.

B-4315

Major

The a2dp library only supports one active stream endpoint.

B-4408

Minor

The connection library does not currently handle TCP or UDP connections.

B-5017

Minor

The L2CAP handler does not currently handle configuration messages which use the
more_data flag; this is minor since all L2CAP configurations fit into a single MTU.

B-5608

Major

Stream connections using a file as their source are terminated when the source file is
empty not when the last of the data has been read from the connection. This makes it
impossible for the Kalimba DSP to read the last few hundred bytes of data from a file.

B-6228

Minor

Security in the connection library is currently configured globally or by service. Per
device settings are not yet supported.

B-7051

Minor

In certain functions, the debug information output by gcc is incomplete, leading to
function arguments sometimes not being available in the variables widget in xIDE until
some way through the function.

B-7645

Major

The a2dp_source_dongle application does not enter DFU mode.

B-8354

Minor

The a2dp library is coupled to the multimedia versions of BlueCore; it currently
assumes that it should check for DSP CODECs in the filesystem and load them onto
the DSP as required.

B-8564

Minor

xIDE strips path components from source files when generating makefiles, which
means that all project files must be in the same directory.

B-8714

Minor

Sometimes bitfield values can be displayed incorrectly in xIDE.

B-8861

Minor

xIDE should provide a way of merging the application and firmware without requiring
the appropriate hardware to be connected over SPI and then flashing it.

B-8888

Minor

If extra indicator reporting is enabled in the hfp library, the initial values of the extra
indicators are not sent to the client.

B-9877

Minor

If the VM project is not before any Kalimba projects in a workspace, the Kalimba
debugger may not operate.

B-10894

Minor

B-11093

Minor

The message CL_SM_ENCRYPTION_CHANGE_IND is unhandled which causes a
Panic in the debug build of the gavdp library.

B-11271

Minor

The Kalimba in BlueCore3 does not allow the last instruction in a DoLoop to be a
function call, as this is only supported in BlueCore5. However, no warning is given
when the target device is BlueCore3.

CS-110737-RNP1

Description

Installing exactly the same version of BlueLab twice, then attempting to uninstall can
leave orphaned shortcuts on the system.

The connection library does not directly support

DM_HCI_READ_REMOTE_VERSION_COMPLETE.

© CSR plc 2006
This material is subject to CSR’s non-disclosure agreement.

Page 13 of 60

_äìÉi~Ä»=îPKS Software Release Note

ID

Known Issues

ID

Severity

B-11616

High

The experimental StreamEnableSniffSubrating call present in BlueLab3.3
is not supported in the firmware supplied with BlueLab3.4 or later. Applications calling
this trap will not run with the supplied firmware.

B-12630

Minor

The CodecSetInput/OutputGain functions on BlueCore5-Multimedia produce
the same gain settings as on BlueCore3 and BlueCore5. The finer control described in
the BlueCore5-Multimedia databook is only currently available using the
CodecSetRaw functions.

B-13391

Minor

The firmware for BlueCore5-Multimedia supplied with BlueLab 3.5 and BlueLab 3.6
does not include PAN support (other builds may include it, but B-4408 makes it
inaccessible.)

Major

If using the BlueTunes development board (DEV-PC_1508) the audio amplifier must
be explicitly enabled by the application. The test_tonegen example (and other
audio applications) need to be updated otherwise the application will run but audio will
not be heard. The following lines should be added to the application in order to enable
the audio amplifier.

#define AUDIO_AMP_LINE (1<<4)
PioSetDir(AUDIO_AMP_LINE, AUDIO_AMP_LINE);
PioSet(AUDIO_AMP_LINE, AUDIO_AMP_LINE);
If PSTool loses contact with the chip when performing a key dump, PSTool may
crash.

B-14655

Low

B-17059

Minor

BlueLab v3.6 does not include firmware for early revisions of BlueCore5-Multimedia. If
such chips are detected, xIDE now reports that suitable firmware cannot be found.

B-17075

Minor

BlueLab no longer includes firmware for BlueCore2 parts. The last production
firmware for these parts comes from the 21 branch and is only partly compatible with
BlueLab v3.6.

B-17158

Minor

A SCO loop through cannot be performed by directly connecting a ScoSource to a
ScoSink. It is however, possible to connect the ScoSource and ScoSink to the
DSP and have it copy data between them.

B-17938

Minor

The StreamEnableSniffSubrating function is not supported in current
firmware and will be removed in a future version of BlueLab.

B-18765

Minor

The default configuration for the stereo_headset reference application supplied
with this release is intended to run on a BlueCore5-Multimedia DEV-1645
development board. The configuration needs changing before the application will work
on other boards.

B-18766

Minor

Firmware limitations prevent a VM application from registering large USB descriptors.
Behaviour becomes erratic for descriptors larger than approximately 256 bytes.

B-18848
(formerly
SEP-16)

Minor

The remote control functionality of the a2dp_source_dongle does not work with
MacOS X. This is because MacOS does not natively support the required HID events.
It is possible, however, to write a MacOS driver to implement this functionality.

B-19036

Minor

Buttonparse does not include PIO 0 if it is defined as a pio_raw event.

B-19303

Low

The stereo_headset application supplied with BlueLab v3.6 no longer has a
configuration supporting the 1307 development board.
Table A.1: Known Issues

The following items are known problems with xIDE.
ID

Severity

Description

M-391

Cosmetic

After an application panic, it's still possible to click step and run in xIDE but they return
error messages.

M-406

Minor

Stepping over MessageLoop causes xIDE to stop responding until a message is
received.

M-452

Minor

xIDE has excessive PC CPU usage while polling a running VM application.

CS-110737-RNP1

© CSR plc 2006
This material is subject to CSR’s non-disclosure agreement.

Page 14 of 60

_äìÉi~Ä»=îPKS Software Release Note

B-14511

Description

Known Issues

ID

Severity

Description

M-467

Minor

Stopping xIDE while firmware is being downloaded leaves a stray
BlueFlashCmd.exe process running.

M-563

Minor

If auto-indent is enabled then xIDE can incorrectly indent lines when Undo is used.

M-582

Cosmetic

M-607

Minor

If local and global variables have the same name, then xIDE only displays one of them
while debugging a VM application.

M-704

Minor

The Stop-Build button produces strange results if pressed during start-up of a Kalimba
project.

M-745

Minor

Using F4 in xIDE to go to the next error does not restart from the top of the list of errors
after rebuilding the application.

M-754

Minor

Single stepping through single instruction do loops performs three instructions on each
step.

M-769

Minor

If xIDE is closed while it's switching to debug mode, it crashes with a memory error.

M-772

Minor

Batch build builds the active configuration several times, rather than building all the
different configurations.

M-815

Minor

Pressing F4 in xIDE to go to the next error can be confused by errors which actually
occur in included files.

M-837

Major

If VM memory or register widgets are opened after a panic, they display all zeros. To
work around this problem, click show next statement on the debug menu after opening
the widgets.

M-842

Minor

Search and replace can take several minutes to complete for a few thousand
replacements.

M-872

Minor

Running or stepping from a kalimba break instruction at the end of do..loop block
may not work as expected.

M-873

Minor

Writing a kalimba register does not affect the value of the register where it is used as a
data or program address in the current instruction.

M-917

Minor

When the debug tabs in xIDE become full and start discarding old content, the scroll
bars are automatically set to the top. This makes it difficult to see the most recent
output.

xIDE sometimes starts with a window partially off the screen; a workaround is to rightclick on xIDE in the task bar and select Move, bringing the window back on screen using
the cursor keys.

Minor

Pressing [F4] in xIDE does not take you to the next error after building a DSP project.

M-974

Major

Removing a project from a workspace while debugging crashes xIDE

M-975

Major

Two KalimbaLoads in quick succession causes BlueLab debugger to stop working.
Setting a VM breakpoint on the second KalimbaLoad will stop the problem occurring.

M-995

Minor

xIDE is unable to debug applications with the Panic Action project property set to Panic
entire chip if they panic shortly after the chip boots. It gives the error Failed to send or
process command.

M-1001

Fatal

xIDE crashes while attempting to decode the DM_HCI_WRITE_STORED_LINK_KEY
primitive sent by the application.

M-1004

Minor

If the size of a Kalimba variable is changed and the application rebuild then re-run whilst
watching the variable in xIDE, the window becomes stale, showing the correct size but
the wrong number of elements. Removing the variable and restoring it to the window
overcomes this problem.

M-1006

Medium

When debugging DSP code on BlueCore5-Multimedia, xIDE will issue warnings when it
needs more than the four supported hardware breakpoints, but then runs the DSP
application anyway rather than aborting.

M-1071

Minor

The BlueStack tab in xIDE does not fully decode all primitives. Some, including
RFC_EX_ESTABLISH_IND and DM_SYNC_CONNECT_CFM, are reported in raw
form.
Table A.2: Known Issues (xIDE)

CS-110737-RNP1

© CSR plc 2006
This material is subject to CSR’s non-disclosure agreement.

Page 15 of 60

_äìÉi~Ä»=îPKS Software Release Note

M-959

Known Issues

The following items correspond to features which were present in BlueLab2 but are not available in BlueLab v3.6.
ID

Severity

B-3575

Minor

Description

DacGetBlock/Level and AdcSetBlock/Level are missing from BlueLab3.
Table A.3: Missing Features

Table A.4 summaries the known issues associated with the BlueSuite tools shipped with BlueLab v3.6. See the
BlueSuite v1.23 Software Release Note for know workarounds to these issues.
Severity

Description

B-401

Medium

PSTool lacks the means to manipulate PS keys directly in flash, without having to
send messages to the firmware.

B-704

Low

B-841

Medium

B-2558

Low

Currently, Broadcast mode will transmit image contents greater than 4Mb even if all
the devices have 4Mb flash. This causes problems with Hoisted images, since the
contents are amenable to truncation, but partially filled sectors cause errors.

B-2971

Low

If a PS Key (that exists on a connected device) is clicked on, the editable field for that
key appears. If the user then chooses to reconnect to another device where the same
key does not exist the Entry not present button appears without removing the editable
field. However, the unwanted editable field is higher in the Z order making it difficult to
press the button to add the entry.

B-3799

Low

The BlueFlash message indicating an image is too big is often generated erroneously.

B-4226

Low

.psr files dumped from PSTool or PSCli have information about how each key is
stored which is lost when merged with PSTool or PSCli.

B-4319

Low

The firmware version is truncated when displayed in PSTool

B-5504

Medium

B-6171

Major

The RAM test within BlueFlash occasionally gives a false negative.

B-11645

Minor

OR and AND operators are not supported in .psr files.

B-12733

Low

The TX PA atten setting for BlueCore5 is missing from the PSTool entry for
PSKEY_LC_ENHANCED_POWER_TABLE key.

B-14911

Low

In PSTool if connected to a device over USB, clicking Reconnect does not allow
selection of the same device.

The buttons in PStool advertise keyboard shortcuts (i.e, one of the letters is
underlined) but these do not work correctly.
At present, Boot mode support within PSTool is handled by Edit Raw.

BlueFlash offers to erase VM applications, but erases the 32Kw legacy sector rather
than the filesystem which is where BlueLab3 applications are stored.

Table A.4: Known Issues in BlueSuite v1.23 Tools Shipped with BlueLab v3.6

CS-110737-RNP1

© CSR plc 2006
This material is subject to CSR’s non-disclosure agreement.

Page 16 of 60

_äìÉi~Ä»=îPKS Software Release Note

ID

Issues Resolved in BlueLab v3.6

Appendix B

Issues Resolved in BlueLab v3.6

The following issues have been fixed in BlueLab v3.6.
ID

B-4924

Severity

Minor

Description
Support for S/PDIF input and output (audio only) has been added to the firmware.
This is typically accessed using PcmRateAndRoute() from the VM.
Note: Not all versions of BlueCore support S/PDIF.

Minor

It is now possible to run two instances of gcc at once. For example, building from two
instances of xIDE at the same time.

B-5951

Minor

The xIDE Project Properties dialogue box now allows the specification of a custom
firmware path.

B-8026

Minor

It is now possible to add custom capabilities to a stream endpoint using the function
A2dpAddSep(). The custom capabilities passed into the function are now copied
directly into the internal message sent by the library.

B-8979

Minor

Occasionally an AVRCP connection attempt from one device to another would fail
when running multiple iterations of connects then disconnects. This has been fixed.

B-9727

Major

DFUWizard is included in the BlueLab v3.6 release.

B-10807

Minor

The VM no longer panics under heavy message load when running under the
debugger. Messages are dropped and messages lost is shown in the messages tab.

B-11377

Minor

The stereo_headset application now sends an AVRCP Pause when it suspends
the A2DP source due to SCO interruption, and sends an AVRCP Play when the
source is started again.

B-11597

Minor

To allow FFWD/REW to continue while a button is held down, AVRCP now resends
FFWD/REW every second until the button is released.

B-11662

Minor

The BlueStack tab in xIDE now displays the iac_lap field of the
DM_HCI_WRITE_CURRENT_IAC primitive correctly.

B-11781

Major

The stereo_headset application now passes interoperability tests with the Nokia
8800.

B-12015

Medium

After sending AVRCP stop the stereo_headset application now sends AVRCP
play next and not a pause when the play/pause button is next pressed,. This ensures it
does not take two presses of the play/pause button to resume play.

B-12083

Minor

Piolib is now able to coexist with files generated by buttonparse.

B-12261

Minor

The stereo_headset application now sends A2DP_Suspend when the pause
key is pressed and no AVRCP connection exists..
Two new traps, MessageChargerTask and ChargerDebounce, have been
added for BlueCore variants with the required hardware.

B-12832

Minor

MessageChargerTask allows the application to register a task to receive charger
messages. ChargerDebounce allows the application to register interest in charger
events.
Events will result in MESSAGE_CHARGER_CHANGED messages being delivered to
the task registered with MessageChargerTask.

B-12859

Minor

If dfubuild is given a .psr file that contains duplicated keys, it now reports the
problem with a message that clearly informs this is the case.

B-12917

Major

A2DP streaming is now always restarted after the stereo headset has connected to an
AG.

B-13179

Minor

When initiating a connection the gavdp library now correctly sets the local MTU to
the L2CAP default.

B-13358

Minor

A complete flash erase of a BlueCore3-Multimedia chip using BlueFlash only erased
the first half of flash. This has been corrected so the flash is fully erased.

B-13591

Major

Significant performance improvements have been made to kalasm2.

CS-110737-RNP1

© CSR plc 2006
This material is subject to CSR’s non-disclosure agreement.

Page 17 of 60

_äìÉi~Ä»=îPKS Software Release Note

B-5662

Issues Resolved in BlueLab v3.6

ID

Severity

B-14263

Minor

Description
The stereo_headset application now plays a min/max beep when the volume is
changed from AG and the volume reaches its limits.
Previously, writing to memory at location zero did not work. That is, code such as the
following assembled incorrectly:

B-14270

Major

M[0] = R0; // Assembled as M[R0] = NULL + NULL;
M[0] = R0 + R1; // Assembled as M[R0] = R1 + NULL;
This has now been fixed.

Minor

The a2dp_source_dongle now checks for mono audio configuration when using
analogue audio inputs.

B-14478

Minor

Application project files have been reviewed and updated for consistency.

B-14578

Minor

As the number of BlueCore chips with Kalimba DSPs increases the number of
variations in the code has increased. To reflect this code references family level
defines and chip specific defines e.g. BlueCore5 and BlueCore5-Multimedia have
been added to the DSP makefiles..

B-14595

Minor

Each variant of the Kalimba DSP is now described by a family level define (to
determine available instructions, etc.) and chip define (to determine RAM sizes, etc.).
The DSP applications and library code have been updated to use these defines.

B-14670

Minor

B-14720

Minor

Some profiler structures in the timer routines in the core DSP library were not
initialised correctly. They are now initialised correctly.

B-14845

Minor

The DC remove, mix and sidetone mix operators used the wrong parameter offset for
their reset functions. This has been fixed.

B-15126

Minor

The file formats for object files, libraries and debug symbols have been changed to
reduce disk usage, improve compile and link times, and reduce startup time for the
debugger.

B-15160

Major

The stereo_headset application connects to a phone using the handsfree or
headset profile after the headset has been powered on. It no longer attempts to
connect the AVDTP signalling channel at this point.

B-15197

Minor

When debugging a BlueLab application, xIDE now attempts to report a reason for any
panics that occur.

B-15235

Minor

A new trapset, HID2 has been added to initialise Avago 5030, 6030 and 7050 mouse
sensors.

B-15251

Minor

The PS key routines in the core DSP library referenced a non-existent field when
cancelling the re-attempt timer, applications which subsequently used these routines
failed to build. This is fixed.

B-15316

Major

There was a memory corruption bug in warp_and_shift operator when its reset
function was called due to incorrect use of length registers. This is fixed.

B-15348

Major

The stereo_headset application now resets its internal state correctly if the
AVRCP connection is dropped before a response to a command is received.

B-15531

Minor

If voice dial fails, the stereo_headset application now restarts AV streaming.

B-15655

Major

On BlueCore5-Multimedia the SBC decoder could incorrectly reconstruct a sub-band
sample if that sub-band was using all 16 bits. The fault occurred because of a fix in
the LSHIFT instruction on BlueCore5-Multimedia vs BlueCore3-Multimedia. The
sample_reconstruction function has been adjusted so that the fault (crackles)
does not occur.

B-15729

Minor

The functionality in the core DSP library to send messages has been more cleanly
split into long and short, send and receive, to make it easier for custom libraries to be
built, for example without code to send long messages but with the ability to receive
them.

B-15741

Minor

An example application for a PBAP server has been added. This application uses the
read-only filesystem to store the phonebook data.

CS-110737-RNP1

Kalprofiler could get caught in an infinite loop trying to process the linked list of
profile structures. This has been fixed.

© CSR plc 2006
This material is subject to CSR’s non-disclosure agreement.

Page 18 of 60

_äìÉi~Ä»=îPKS Software Release Note

B-14369

Issues Resolved in BlueLab v3.6

Severity

Description

B-15767

Minor

The profile routines have been added to the non-debug variant of the core DSP library
as well as the debug variant. This allows debug builds of applications and other
libraries without having to use the debug version of the core library.

B-15857

Minor

The Kalimba Matlab tool kalstacktrace attempts to open source code files if it
finds the DSP in the error routine. If it fails to open the file it no longer attempts to
close the file causing an error.

B-15875

Minor

The FTPC_PULL_OBJECT_START_IND message structure declares the
objectSize of a uint16. GOEP passes this value to FTPC as a uint32. It is now
correctly passed on as a uint32.

B-15884

Major

An initial version of a new audio library has been created. This provides an
abstraction layer for underlying audio components. At present it is an immature
implementation and is largely for internal development.

B-15911

Minor

Standard messages defined in kalimba_standard_messsages.h sent
between libraries in the VM and DSP have been reviewed. All messages now follow
the standard naming convention.

B-15947

Minor

The goep library now correctly rejects connection requests from the client if it already
has an active connection.

B-15977

Minor

xIDE no longer shows a Python error in the command window on startup.
The encoder in the CODEC library is either streaming or stopped. These states were
referenced as either 0 or 1.

B-16080

Minor

B-16087

Minor

The Kalimba Matlab tool Kalports now reports the configuration of the port and the
amount of data/space available, as well as its status.

B-16121

Minor

In IrDA OBEX GET (and GOEP GET), the final bit indicates the final packet containing
headers. Since GOEP only send headers in the first packet, it always sends GET
Complete (0x83).

B-16145

Major

Support for internal battery monitoring when using BlueCore5-Mutimedia on the DEV1645 board has been added.

B-16217

Minor

An example PBAP client application has been added.

B-16218

Minor

A Windows GUI to drive the PBAP client VM application has been added.

B-16219

Minor

The debug check in PbapcPullvCardListingStart was checking for less
than when the check should have be for less than or equal to. This caused a valid
mode of operation (download current folder) to fail in debug. This has been fixed.

B-16224

Minor

The define used by the Phonebook Access Client Library for ListStart application
parameter ID (5) was being used as the default value instead of the correct default
(0). This has been corrected.

B-16240

Minor

Between the prototype and released specification, the vCard handle format was
changed from decimal to hexadecimal. The pbap libraries now use the correct
format.

B-16254

Medium

The Kalimba Matlab tools have been updated to support BlueCore5-AMAP and
BlueCore5-DSPROM.

B-16324

Major

The Kalimba dtmf library did not function correctly. Various corrections and
enhancements have been made and this library now functions correctly.

B-16490

Major

The stereo_headset application now correctly sends a button press whenever
the fwd or back buttons are released.

B-16634

Minor

The a2dp library function A2dpEnableSignallingIndications has been
added. When called the application receives a message when a signalling channel
has been opened or closed.

CS-110737-RNP1

The constants $codec.stream_encode.STATE_STOPPED and
$codec.stream_encode.STATE_STREAMING are now used.

© CSR plc 2006
This material is subject to CSR’s non-disclosure agreement.

Page 19 of 60

_äìÉi~Ä»=îPKS Software Release Note

ID

Issues Resolved in BlueLab v3.6

ID

Severity

Description
BlueCore5-Multimedia can make UART and PCM pins appear as PIOs 16..23. The
traps have been added to support this new functionality:

ƒ PioGet32
ƒ PioSet32
ƒ PioGetDir3
ƒ PioSetDir32
B-16672

Minor

ƒ PioGetStrongBias32
ƒ PioSetStrongBias32
ƒ PioGetMapPins
ƒ PioSetKalimba32
ƒ PioGetKalimba32

B-16681

Minor

In the GOEP specification a server that wishes to make an authentication challenge
during connection should respond with unauthorised (0x41). But some
implementations respond with unauthorised and the final bit is set (0xc1). A check for
unauthorised and final bit set (0xc1) has been added.

B-16721

Major

Support for HFP 1.5 has been added to the stereo_headset application.

B-17030

Minor

A Slice transform to remove a configurable number of bytes from the start and end of
each packet has been added.

B-17031

Major

The pairing mode timer in the stereo_headset application is now correctly
cancelled when the application powers down.

B-17140

Minor

It is now possible for the user to defined their own character classes in the .parse
file, for use in patterns in place of the pre-defined parameters %s, %d and %*. See a
guide to BlueLab Command Line Tools section 6.

B-17144

Minor

The VmChecksum function has been added to perform simple checksums on flash
regions.

B-17167

Minor

A new message, MESSAGE_PSFL_FAULT has been added. This message is sent
to the registered system task if flash corruption is spotted in the Persistent Store.

B-17200

Major

A new routine has been added to the cbuffer routines in the core library:
$cbuffer.force_mmu_set. This is for use with BlueCore5 family of chips and
forces an MMU buffer set.

B-17265

Minor

When receiving long messages from Kalimba, they now have the id
LONG_MESSAGE_FROM_KALIMBA rather than the id
MESSAGE_FROM_KALIMBA.

B-17378

Minor

The stereo_headset application now correctly continues charging even when the
application is powered down.

B-17576

Major

The stereo_headset application has been updated to work better on a DEV-1442
development board.
Note: Battery monitoring is not supported on these boards.

B-17583

Minor

Compact firmware builds from BlueLab v3.6 and Firmware v22.x onwards include the
raw UART transport.

B-17691

Major

When sending a CIND response the aghfp library now correctly inserts a comma
between the callsetup and callheld indicators. This only affects AG
implementations enabling the HFP 1.5 features.

CS-110737-RNP1

© CSR plc 2006
This material is subject to CSR’s non-disclosure agreement.

Page 20 of 60

_äìÉi~Ä»=îPKS Software Release Note

ƒ PioSetMapPins

Issues Resolved in BlueLab v3.6

ID

Severity

B-17934

Major

B-17965

Major

Description

$cbops.scale_16_bit would not build for BlueCore5-Multimedia because it
tried to call a function that didn't exist. This has been resolved and the comments
updated.
Buttonparse now copes with 32 PIO lines and charger events. See a guide to
BlueLab Command Line Tools section 4.

B-18089

Minor

The messaging system used to send long messages between Kalimba and the
VM/Firmware uses several buffers. These buffers were all define independently of
each other and were various sizes. They have all now be standardised to allow
messages with maximum payload sizes of
$message.MAX_LONG_MESSAGE_TX_PAYLOAD_SIZE and
$message.MAX_LONG_MESSAGE_RX_PAYLOAD_SIZE.

B-18147

Major

The stereo_headset application now correctly enables voice dial even if the HFP
audio gateway and AV source are the same device.

B-18197

Minor

Support has been added to the core DSP library to allow the DSP to obtain the flash
address of a file in the file-system. A function has been provided that takes a VM file
(index) handle and returns the start of the absolute address in flash.

B-18329

Minor

The stereo_headset application now only connects to the last used AV source
on power on instead of attempting to connect whenever an HFP connection is
created.

B-18442

Minor

Applications can now check if a timer handler is in use by checking the ID field, if it is
non-zero the handler is in use.

B-18487

Major

The stereo_headset application has been updated to use the new audio
library.

B-18549

Minor

B-18563

Major

Applications have been update to expect LONG_MESSAGE_FROM_KALIMBA where
appropriate. (see B-17265 in Error! Reference source not found.)

B-18606

Major

Reading VM_ADC_SRC_VDD_BAT returned incorrect readings in early firmware for
BlueCore5-Multimedia. This has now been remedied.

B-18628

Major

The sco_dsp example application has had its .psr filename changed to match the
VM application filename.

B-18682

Minor

The stereo_headset application has been updated to use version 2.7.6 of cVc.

B-17989

B-18697

Minor

PioSetRts now allows the RTS pin to be controlled when the USB interface is

active. Previously it was only available if the UART was disabled or under VM control.

PioSetDir32, PioSetStrongBias32, PioSet32, PioSetMapPins,
PioSetKalimba32, PioSetDirKalimba32 and PioDebounce32 now all
return a 32 bit value where each bit represents a PIO. Previously, if the trap returned
a high value for any bit then the trap could not configure that PIO in the way
requested.

B-18723

Major

The application task registered using MessageSystemTask now receives
MESSAGE_USB_DECONFIGURED as well as MESSAGE_USB_ENUMERATED. The
application can then respond by limiting power consumption as required for USB
qualification.

B-18733

Minor

The GoepConnectResponse function returned an error to the client if OBEX level
authentication was being used. This has been corrected.

B-18943

Minor

ChargerDebounce now returns a 16 bit value where any bit set high indicates that
bit was passed to ChargerDebounce as an event_to_enable but is an
invalid event. ChargerDebounce will return zero on success and non zero on
failure.

B-18967

Major

CS-110737-RNP1

Requesting PS keys or the address of a file in the flash system from within a PS
key/file address handler could previously cause the relevant message search routine
to lock up. This has been fixed.

© CSR plc 2006
This material is subject to CSR’s non-disclosure agreement.

Page 21 of 60

_äìÉi~Ä»=îPKS Software Release Note

Minor

The parser produced by genparse.exe now copes with AGs sending AT
commands containing extra characters, \r\n, before the expected sequence.

Issues Resolved in BlueLab v3.6

ID

Severity

B-19181

Minor

Description
PSR files have been added to the pbap_client and pbap_server applications
to ensure that both devices have the same fixed pin for pairing.
On BlueCore4-Audio and BlueCore5-Multimedia, reading any ADC source other than
VM_ADC_SRC_VDD_BAT resulted in a MessageAdcResult with an incorrect
scaled_reading field being returned.

B-19622

Minor

This has now been remedied and the scaled_reading field is now correct for all
ADC sources and BlueCore chips.
Note:

The scaled_reading and reading fields are identical for all ADC sources
other than VM_ADC_SRC_VDD_BAT.
Minor

The time taken for xIDE to load debug information for large projects has been
improved.

M-475

Minor

xIDE previously tracked breakpoints by source line, which meant inserting lines in
front of a breakpoint. This could cause it to move without warning. It now moves the
breakpoint with the source line.

M-744

Minor

It is no longer possible for xIDE to open the same document twice.

M-761

Medium

M-905

Minor

xIDE no longer crashes if the user attempts to access the Debug menu with a
workspace containing no projects.

M-940

Major

When using VM and DSP projects in a single xIDE workspace, all the DSP project
that the VM application can load had to be included in the workspace. If while
debugging such a workspace, the VM loaded a DSP project that was not included in
the workspace, xIDE would stop debugging. This has been fixed.

M-956

Major

DSP project debug transport settings now mirror those of any VM project in the same
workspace. This makes it possible to use the USBSPI adaptor by changing only one
debug transport setting.

M-969

Minor

If pointers to structures are passed to a function as the first or second parameter,
structure elements after the first one did not always display the correct value in the
debugger. This has been fixed.

M-976

Minor

xIDE sometimes failed to program the DSP. This has been fixed.

The Kalimba register window groups the registers by type, these groups can be
expanded and collapsed by the user. xIDE now remember which groups are open
when switching between debug and edit mode.

Table B.1: Issues Resolved in BlueLab v3.6
Table G.2 summaries the issues addressed in the BlueSuite tools shipped with BlueLab v3.6. See the BlueSuite
v1.23 Software Release Note for full descriptions.
ID

Severity

Description

B-6757

Minor

If an .xpv/.xdv file is changed after loading it into BlueFlash this is now picked up
and used by the application.

B-7964

Minor

Several minor problems with the USB device driver were addressed.

B-12859

Minor

If dfubuild was given a .psr file with duplicate keys it reported .psr is unreadable
it now more helpfully reports .psr contains duplicated keys

B-13358

Minor

If dfubuild was given a .psr file with duplicate keys it reported a keys.psr is unreadable
it now reports .psr contains duplicated keys

B-13723

Minor

BlueFlash has been updated so it can handle flash parts greater than 32Mbit.

B-13984

Minor

On-chip flash burn speed has been improved in BlueFlash.

B-14580

Minor

DFU speed has been improved.

B-14641

Minor

BlueFlash now calculates CRCs for large flash parts more quickly.

B-14661

Minor

dfuengine.dll no longer has dependencies on Microsoft debug dlls.

CS-110737-RNP1

© CSR plc 2006
This material is subject to CSR’s non-disclosure agreement.

Page 22 of 60

_äìÉi~Ä»=îPKS Software Release Note

M-455

Issues Resolved in BlueLab v3.6

ID

Severity

Description

B-15037

Minor

BlueFlash and BlueFlashCmd now default to the same crystal speed.

B-15168

Minor

BlueFlash now has a longer erase timeout allowing the operation to complete on all
chip variants.

B-16021

Minor

PSTool's edit raw function limited the PS Key to 0xFFF, this has been update to
0xFFFF.
Table B.2: Summary of BlueSuite v1.23 Resolved Issues

_äìÉi~Ä»=îPKS Software Release Note

CS-110737-RNP1

© CSR plc 2006
This material is subject to CSR’s non-disclosure agreement.

Page 23 of 60

Issues Resolved in BlueLab v3.5

Appendix C

Issues Resolved in BlueLab v3.5

The following issues have been fixed in BlueLab v3.5.
ID

Severity

B-5174

Minor

Description
If variables where initialised with values which had to be calculated by the
preprocessor, certain combinations using divide caused kalasm2 to return an error.
This has been corrected.
kalasm2 now allows the use of expressions when specifying the size of an array,
provided that the expression evaluates to a constant. For instance, the following now
works:

Minor

.CONST N 10;
// Declare array of size 20
.VAR my_var[N*2];

B-6712

B-6841

Major

Minor

A panic in the hid Library has been fixed. This panic was caused by the HID instance
being destroyed too early if the application chose to reject an incoming HID
connection.
If the UART is being used for user data then BlueCore does not restart the timer for
PS Key UART_SLEEP_TIMEOUT when it receives data on the UART while awake.
It uses activity to wake up from deep sleep, but it does not register any activity while
the chip is awake.
Since BlueCore should be told by the VM when it's safe to enter deep sleep, this is
unlikely to affect VM applications, but users should be aware of this behaviour. CSR
may provide the facility for the user transport to behave as the BCSP one does in this
regard at a later date.

B-6902

Major

A coding error within the Bluecore firmware led to excessive consumption of internal
resources in complex scatternet scenarios - the most common example being a
device with 6 slaves to which a remote device attempts to connect. It was possible for
the Bluecore device to become unresponsive. This has been resolved.

B-7487

Minor

Firmware for 6Mbit parts which does not support DFU now has an additional 32kW
available for the contents of the filesystem due to a redesign of how the filesystem is
laid out.

B-7554

Major

When using any of the H4, H4DS, or user transports with very large HCI ACL packet
sizes or when the system is very heavily loaded, it was possible for the from-host data
path to stall. This has now been fixed.

Minor

PS Key INITIAL_PIO_STATE is a useful PS Key to configure the PIO lines prior
to booting. This PS Key, which is often used to keep power hold signals active when
booting, was previously not being applied in DFU mode. This was preventing some
DFUs from working. This issue has now been resolved.

B-7733

The following support for BlueCore5-Multimedia has been added:
B-7837

Major

1. Altered and increased memory map.
2. Changes made to library code to support DSP peripheral changes.
3. Makefile updated to build BlueCore5-Multimedia versions of libraries.

Minor

When using BCSP as the transport for PSTool and selecting a COM port which does
not exist (or is already in use), PSTool no longer causes an internal error in the C++
runtime library.

B-9586

Minor

The hfp library now produces AT+VGM using the same parameter formatting as
AT+VGS i.e. numeric values are always 2 digits long. This causes values less than 10
to be presented with a leading zero. These commands are formatted correctly, as
specified by V.250 "Serial asynchronous automatic dialling and control".

B-10032

Minor

kalasm2 now supports the Borrow (B) and Not Borrow (NB) flags. These are the
inverse of the carry flags. For instance, B is equivalent to NC (Not Carry), and NB is
equivalent to C (Carry).

B-7903

CS-110737-RNP1

© CSR plc 2006
This material is subject to CSR’s non-disclosure agreement.

Page 24 of 60

_äìÉi~Ä»=îPKS Software Release Note

B-6527

Issues Resolved in BlueLab v3.5

Severity

Description

B-10748

Minor

BlueFlashCmd now indicates it is waiting for a mutex if it cannot immediately obtain
the SPI application mutex.

B-10816

Minor

The connection library now handles DM_EN_ACL_OPENED_IND and
DM_EN_ACL_CLOSED_IND messages if supported by the underlying firmware.
Compatible firmware that does not support these new messages causes a VM panic
in the connection library when running under xIDE. In such cases the application
cannot be run under xIDE but still operates as expected without xIDE attached.

B-10825

Minor

Firmware changes have been made to improve the throughput of host streams
(passed over BCSP channel 13.)

B-11148

Major

The Call Manager and Audio Handler parts of the aghfp library now cooperate with
one another. This prevents confusion due to opening/closing an audio connection
while a call is being setup/shutdown (or vice-versa).

B-11346

Minor

The BlueLab linker now outputs a map file.

B-11389

Minor

The aghfp library has been modified to allow eSCO/EDR packet types when
creating/accepting a synchronous connection.

B-11391

Minor

The hfp library now supports eSCO packet types supported for HFP1.01 and HSP
1.0.
In kalasm2, when declaring array variables with initialisation data, it is necessary to
separate the initialisation elements with a comma:

.VAR $myVar[] = 1, &$test, 3, 4;
B-11400

Major

If a comma is missed and the next element is the address of a variable, kalasm2
treats the & as a bitwise and operator instead of the address of operator:

.VAR $myVar[] = 1 &$test, 3, 4;
Previously, this would result in the bitwise and being silently compiled, which is
unlikely to be the intended result. kalasm2 now raises an error in this case.
B-11478

Major

Support for BlueCore5-Multimedia has been added to core kalimba libraries

B-11484

Minor

The trap SinkGetRssi has been added to retrieve the RSSI information on the
corresponding ACL (if any.) This is equivalent to the BCCMD RSSI_ACL.

B-11585

Major

Support for BlueCore5-Multimedia has been added to BlueLab 3.5.

B-11644

Major

Changes have been made in mexspi.dll to address intermittent problems when
accessing Kalimba from inside Matlab.

B-11715

Minor

The hfp library now issues only one AT+COPS=3,0 command, rather than each
time AT+COPS? is sent.

B-11813

Minor

Keyboard applications now support sending of Pin Code input reports.

B-11818

Minor

The OPP Server library now supports the server aborting a transaction.

B-11827

Minor

A problem was identified in the Bluecore firmware when configured as a bus-powered
USB device. During a USB suspend condition, Bluecore would only go into its low
power mode (deep sleep) for the first 40 seconds of the suspend. It should have
remained in deep sleep for the full duration of the suspend in order meet the USB
power consumption requirements. This problem has now been remedied.

B-11859

Minor

AGHFP now uses the Handsfree's requested CLIP mode (via AT+CLIP) to determine
whether to send +CLIP notifications during a call setup.

B-11906

Minor

Until now, when applying the PS Key INITIAL_PIO_STATE, the PIO direction was
being set before the state rather than the other way round. This bug has now been
resolved.

B-11937

Fatal

The code generated by buttonparse in BlueLab-3.4-release did not work on
BlueCore2 and BlueCore3-Multimedia parts due to a bug when PS Key
PIO_WAKEUP_STATE was not present. This has been remedied.

B-11945

Fatal

A rare problem has been addressed in the compiler which caused it to potentially
generate incorrect code for accesses to arrays allocated on the stack in certain
circumstances. This was found during internal testing and caused the VM to panic.

CS-110737-RNP1

© CSR plc 2006
This material is subject to CSR’s non-disclosure agreement.

Page 25 of 60

_äìÉi~Ä»=îPKS Software Release Note

ID

Issues Resolved in BlueLab v3.5

ID

Severity

Description

B-11967

Minor

B-11969

Cosmetic

The documentation for the sink header no longer mentions the non-existent
SinkClaimed function.

B-11994

Cosmetic

The AV dongle application no longer includes the service and region libraries in
the project properties as it does not use these libraries.

B-12003

Minor

EDR packet mask bits, used in primitives sent to the HCI, now correctly use inverted
logic.

B-12018

Minor

A memory leak which occurred in the very rare situation of an ACL in sniff timing out
whilst the DM was requesting to exit sniff before performing a roleswitch has been
fixed.

unpackfile has been extended to understand dumped images and merge.xpv

B-12024

Minor

The hfp library now falls back to negotiating a SCO connection if a request for an
eSCO link is ignored by a remote device. This corrects an interop issue where an AG
reports that it can support eSCO at the baseband level but will not respond to eSCO
connection requests causing a HCI Host Timeout error to be generated.

B-12076

Major

Call Manager now receives notification of any SCO negotiation failure if it is managing
a call setup. Previously, a notification was sent directly to the app leaving the Call
Manager in an incorrect state.

B-12077

Minor

The aghfp library now sends OK in response to ATA or AT+CHUP commands when
managing a call via the Call Manager.

B-12083

Minor

A directive use_piolib has been added to allow piolib.h to be used with code
generated by buttonparse.

B-12109

Major

The hfp library now correctly continues the SLC connection process if it receives outof-spec SDP attribute data during an SLC connection.

B-12117

Major

B-6879 reduced the latency of data flowing into the DSP on 21.x and later firmware.
This introduced a problem where the DSP could fail to be notified of data arriving on
an RFCOMM connection. This has now been resolved.

B-12133

Minor

The gavdp library used to issue an ABORT request even if a CLOSE request was
accepted by the remote device, it no longer does this.

B-12141

Minor

The Device Manager has been modified to ignore the EDR packet_type bits for a
Synchronous Connection when running on a non-EDR chip. This allows the client to
be agnostic to whether the chip supports EDR or not.

B-12206

Minor

The hfp library's parser file has been optimised to reduce the size of the generated
code.

B-12256

Major

Fixed a firmware bug with Inquiry with RSSI which could cause the Page Scan Mode
of the device cache to become corrupt.

B-12277

Minor

Functions have been added to pio.h to control the dedicated MIC BIAS pin on
BlueCore5-Multimedia.

B-12305

Minor

PioFlashLed0 and PioFlashLed1 functions have been added to control new
the dedicated LED hardware on BlueCore5-Multimedia.

B-12420

Minor

In the DSP matlab files Kalreadval can now read from program memory and
kalwriteval can write to program memory.

B-12427

Major

B-12433

Major

CS-110737-RNP1

pscli no longer crashes if an attempt is made to dump firmware from a chip with no
firmware.

An issue when running with Bluestack on-chip where it was possible for L2CAP
Connectionless data to corrupt the baseband's buffers and cause it to continuously
transmit zero-length broadcast packets, has been fixed.

© CSR plc 2006
This material is subject to CSR’s non-disclosure agreement.

Page 26 of 60

_äìÉi~Ä»=îPKS Software Release Note

files as well as simple filesystem images.

Issues Resolved in BlueLab v3.5

ID

B-12478

Severity

Minor

Description
The spp library no longer sends MESSAGE_MORE_DATA and
MESSAGE_MORE_SPACE messages. It now sends SPP_MESSAGE_MORE_DATA
and SPP_MESSAGE_MORE_SPACE instead.
These new messages have structures SPP_MESSAGE_MORE_DATA_T and
SPP_MESSAGE_MORE_SPACE_T, which contain an additional field SPP *spp;

pointing to the associated SPP instance.

Minor

B-12483

Minor

The BlueLab linker, ld, no longer crashes when run with no arguments.

B-12533

Minor

The DSP code has been reordered to avoid stalls when running on BlueCore5Multimedia.

B-12549

Minor

BlueLab can now use CSR's USB->SPI converter (Babel) as an SPI connection,
instead of a direct connection to LPT1.

B-12613

Minor

The DSP libraries and pre-built applications are now placed in bc3mm or bc5mm
subdirectories as appropriate.

B-12620

Major

The hfp library will now supply default parameters that will allow an incoming
synchronous connection request with S3 settings to be negotiated.

B-12646

Minor

The PioSetAudioLDORegulator and PioSetBtLDORegulator functions
have been added to control the linear regulators on BlueCore5-Multimedia.

B-12648

Minor

Two new routines have been added to the DSP timer library,
$timer.n_ms_delay and $timer.n_us_delay, which implement an n
millisecond and n microsecond delay respectively. They both use slower clock rates
to improve current consumption.

B-12664

Minor

A scale operator has been added to the cbops library. This allows combinations of
integer and fractional multiplies.

B-12752

Minor

A _print variant of pio.h library has been added which prints debug output.

B-12753

Minor

A VARIANTS file has been added to produce a version of the dun library which will
display debug output (dun_print).

B-12754

Minor

A VARIANTS file has been added to the goep library to produce versions which will
display debug output (goep_print) and packet decode (goep_print_decode).

B-12755

Minor

A VARIANTS file has been added to the pbaps library to produce versions which
will perform debug checks (pbaps_debug) and to display debug output
(goep_debug_print).

B-12756

Minor

VARIANTS file have been extended to produce libraries which will display debug
output (ftps_debug_print, ftpc_debug_print, oppc_debug_print,
opps_debug_print).

B-12779

Major

GCC failed to generate code for uninitialised static const globals, causing linker
errors. The problem is now resolved.

B-12787

Minor

To prevent a panic in debug mode on a stream disconnect,
MESSAGE_STREAM_DISCONNECT is ignored.

MESSAGE_SOURCE_EMPTY is also ignored on RFCOMM disconnect to prevent a
panic.

B-12796

Minor

The default set of code segments has been expanded to include a segment in Data
memory 1 which will be linked first, i.e. it will always start at address 0x0000. This is
for use in cVc applications but may be useful in others.

B-12803

Minor

The stream subsystem now uses the value of PS Key PCM_CONFIG32, making it
possible to support external 8bit CODECs. (Previously it assumed all external
CODECs were 16bit.)

CS-110737-RNP1

© CSR plc 2006
This material is subject to CSR’s non-disclosure agreement.

Page 27 of 60

_äìÉi~Ä»=îPKS Software Release Note

B-12479

The dun library now handles the MESSAGE_MORE_SPACE message. It also creates
DUN equivalents of MESSAGE_MORE_DATA and MESSAGE_MORE_SPACE
(DUN_MESSAGE_MORE_xxxx). New SPP messages
(SPP_MESSAGE_MORE_xxx) are also handled.

Issues Resolved in BlueLab v3.5

ID

B-12820

Severity

Minor

Description
DSP projects in xIDE now have a property which controls whether the DSP
application is loaded fully by the Xap, or use a small DSP bootstrap which loads the
rest of the application more quickly. (This is ignored for BlueCore3-Multimedia where
it is not supported.)

ConnectionSmSetSdpSecurityIn and
ConnectionSmSetSdpSecurityOut previously could be delayed in an internal

B-12903

Major

B-12913

Major

An issue has been resolved where the max_frame_size field of an
RFC_START_CFM would contain the locally requested value and not the negotiated
value.

B-12939

Minor

The battery library now uses scaled values provided by the firmware for the
internal battery monitor. This allows it to cope with chip differences between
BlueCore4-Audio and BlueCore5-Multimedia parts.

B-12977

Minor

BlueCore5-Multimedia can make UART and PCM pins appear as PIOs 16 to 23. The
traps PioGet32, PioSet32, PioGetDir32, PioSetDir32,
PioGetStrongBias32, PioSetStrongBias32, PioSetMapPins,
PioGetMapPins, PioSetKalimba32 and PioGetKalimba32 have been
added to support this new functionality.

B-13038

Major

Routing of 8bit data through transparent SCO using the stream subsystem produced
corrupted output since parts of the data path were incorrectly configured for 16bit
data. This has been fixed.

B-13178

Minor

BlueCore5-Multimedia now supports an 8bit mode in reading/writing to MMU ports.
Also automatic saturation to 8/16bits is supported. The cbuffer libraries have been
updated to support this.

B-13189

Minor

The DSP on BlueCore5-Multimedia cannot write into the second memory region
shared with Xap (used for MMU handles.) It never needed to, and this removes one
mechanism for an errant DSP application to cause problems for the rest of BlueCore.

B-13232

Minor

On BlueCore3-Multimedia (later chips already have this feature supported in the
firmware), the PIO lines used to wake the chip from deep sleep can now be active
low. This is controlled by PS Key PIO_WAKEUP_STATE.

B-13290

Major

An issue that caused a firmware panic to occurred when using VM SCO Streams and
a SCO link was opened and closed within a few tens of milliseconds, has been fixed.

Minor

Previously you could only register a handler against a particular message ID. In the
DSP libraries if you wanted to receive IDs 0x10 & 0x11, you had to register two
handlers.
Now you can register to receive an ID and a mask field, so in this example you
register ID 0x10 mask 0x1.

Major

An SDS issue has been fixed which meant that searching for non-Bluetooth 128bit
UUIDs could return incorrect results. This bug was caused by SDS assuming that all
128bit UUIDs were using the Bluetooth Base UUID and hence only comparing the
lower 32bits which could result in an incorrect match or a no match if the bottom
32bits were zero.

B-13406

Major

BlueCore5-Multimedia can enable a low power mode for the output stage of each
CODEC channel. Enabling the low power modes will reduce power consumption at
the cost of a slight reduction in audio quality. The traps
CodecOutputStageAEnableLowPower and
CodecOutputStageBEnableLowPower have been added to support this new
functionality.

B-13481

Major

SBC headers include a 1 byte check sum to detect if the frame is corrupted. However
it is possible for the frame to be corrupt and the check sum to pass. Consequently
further sanity checks have been added to certain parameters read from the header.

B-13506

Major

If a source was manipulated directly by the application (using, say, SourceDrop)
before being connected to the DSP it was possible for the DSP to see an incorrect
figure for the amount of data present in the source. This has been fixed.

B-13374

CS-110737-RNP1

© CSR plc 2006
This material is subject to CSR’s non-disclosure agreement.

Page 28 of 60

_äìÉi~Ä»=îPKS Software Release Note

B-13338

message queue. It was possible for functions called later to execute first. This has
now been remedied.

Issues Resolved in BlueLab v3.5

ID

Severity

B-13511

Minor

Description
A field (sco_handle) has been added to the CL_DM_SYNC_CONNECT_CFM_T to
enable the LM SCO handle to be forwarded to the application or library.
21 and prior firmware contained hard-coded limits on the shallow sleep power-saving
mode when a PCM interface or internal codec was in use. PS Key
PCM_MIN_CPU_CLOCK provided a way for the user to further limit shallow sleep.

B-13529

Minor

These limits have now been removed. This may allow more power to be saved, but it
is also now possible to configure the system such that the PCM/CODEC do not
function correctly. The shallow sleep limit PS Keys should only be reduced on advice
from CSR.

Previously, kalasm2 would not expand a macro if it was preceded by a $ (which marks
global scope in a variable). So the following would not work:

.VAR $bar = 5;
B-13535

Minor

.define FOO bar
.VAR $foo = $FOO;
Support for expanding macros such as FOO when they have a $ in front of them has
now been added. In the above example, $foo would take on the value of $bar.

B-13577

Minor

The vm.h online documentation now includes a description of the
VmTransmitEnable function.

B-13611

Minor

The aghfp library explicitly ignores the CL_SM_ENCRYPTION_CHANGE_IND
message from the connection library.

B-13635

Minor

I2S can only be used on PCM ports 0 and 1. PcmRateAndRoute will now return
FALSE on attempts to route I2S to any other port.
A more detailed configuration of the Digital Audio Interface has been added, typically
used for outputing I2S.

B-13696

Major

B-13704

Major

An issue has been fixed in the SDP server which meant that records containing 128bit
UUIDs were not parsed correctly and could result in a search incorrectly returning
PDU_SYNTAX_ERROR.

B-13769

Minor

The debug version of the DSP SCO processing library did not build correctly. The
internal define SCO_DEBUG_ON was never defined. This has been corrected.

B-13833

Minor

When a DSP timer is set it is allocated an ID, which could be zero. If a timer was
cancelled that had never been used the ID would be zero which could have been a
real timer. The DSP libraries have been modified so that zero is never an assigned
timer.

B-13984

Minor

On-chip flash burn speed has been improved.

B-14020

Minor

The user friendly names of PS Keys USRx have been slightly altered so that they sort
more nicely in PS Tool's list box.

B-14024

Minor

The BlueLab installer now adds copies of the relevant transport DLLs (spilpt,
pttransport) alongside the mexspi DLL which is the basis of the DSP matlab
tools.

B-14043

Major

Fixed an audio corruption issue when routing multiple SCO links to the external PCM
port and using an 8bit codec. When one of the SCO links was disconnected, the
format would default back to 16bit and hence cause audio on the remaining SCO links
to become corrupted.

B-14122

Minor

The stereo headset application supplied now includes version 2.76 of cVc and an
update version of the ParamMgr tool.

CS-110737-RNP1

These settings are controlled via PS Key DIGITAL_AUDIO_CONFIG, PS Key
DIGITAL_AUDIO_RATE and PS Key DIGITAL_AUDIO_BITS_PER_SAMPLE.

© CSR plc 2006
This material is subject to CSR’s non-disclosure agreement.

Page 29 of 60

_äìÉi~Ä»=îPKS Software Release Note

A new PS Key CODEC_MIN_CPU_CLOCK has been provided to give separate
control over shallow sleep when a PCM interface and an internal CODEC is in use.
(Previously, PS Key PCM_MIN_CPU_CLOCK applied to both.)

Issues Resolved in BlueLab v3.5

Severity

Description

B-14173

Minor

A new function has been added to the DSP message library to return the amount of
space in the message queue.

B-14213

Minor

A project property has been added which allows the stereo_headset application
to run on DEV-PC-1442 board.

B-14271

Minor

A set of PS Key retrieval routines have been added to the core DSP library. Now
users simply request a key to be retrieved and the relevant handler is called when
ready. Mutliple keys can be requested without having to wait for the previous requests
to complete.

B-14337

Minor

It was possible for the chip version stored in kalprocessor, in the DSP matlab
tools, to become stale very easily. As you need to reload the symbols when you
change chips kalloadsym now forces kalprocessor to read the chip version.

B-14365

Minor

A new tool - kalports - has been added to the Matlab tools which allows users to
determine the state of Kalimba's MMU ports - connected or disconnected.

B-14389

Minor

The BlueCore variant, storage size and storage type can now be specified from xIDE>Project->Properties. These settings will override the automatic detection that usually
takes place

B-14479

Minor

The default configuration files for the mono headset have reduced microphone gains
to improve audio quality.

B-14546

Major

Several issues have been addressed in the configuration tool for the mono headset
which could lead to it generating incorrect PSR files.

M-678

Minor

Pointers to opaque types (such as GAVDP) in a VM application sometimes failed to
display correctly in xIDE, even when the type was fully defined elsewhere in the
source file. This has been fixed.

M-780

Minor

If a project has been removed (e.g. deleted) and xIDE attempts to perform an
operation in a workspace which referenced that project it now cleanly handles this.
Previously it would fail with a memory exception.

M-821

Minor

Removing all projects from a workspace crashed xIDE. This has now been fixed.

M-829

Minor

When debugging a multi-project workspace in xIDE, the project selector in the debug
toolbar could activate the wrong project or show the wrong project as being active.
This has been corrected.

M-871

Major

xIDE could crash with a memory access if you chose to "restart all processors" in a
combined DSP and VM project. This has now been fixed.

M-874

Minor

Stepping over kalimba instructions like if [condition] call [address]
failed to stop on the following instruction if the condition was not satisfied. This has
been fixed.

M-923

Major

Structures that refered to themselves in their definition (e.g, struct list_item
{ int val; struct list_item *next; }; ) caused xIDE to crash when
it attempted to display the type in the variables pane. This has now been fixed.
Table C.1: Issues Resolved in BlueLab v3.5

CS-110737-RNP1

© CSR plc 2006
This material is subject to CSR’s non-disclosure agreement.

Page 30 of 60

_äìÉi~Ä»=îPKS Software Release Note

ID

Issues Resolved in BlueLab v3.4

Appendix D

Issues Resolved in BlueLab v3.4

The following issues have been fixed since BlueLab v3.3 was released.
Severity

Description

B-2770

Cosmetic

BlueLab3 (especially make) does not understand file or directory names containing
spaces. BlueLab now enforces this by refusing to install in a directory under Program
Files (or any other path containing spaces.)

B-4522

Minor

The avcontrol application no longer leaks memory if left running with the AV
dongle unplugged.

B5153

Minor

SourceSize can now return up to 3K for file sources; previously only the next
1.5K of each file could be accessed through SourceMap.

B-6160

Minor

kalasm2 no longer crashes if asked to assemble malformed instructions involving a
memory access in parallel with reading the result from a division.
kalasm2 incorrectly accepted a memory read in parallel with a divide instruction,
generating code only for the divide. This problem affected code such as:

B-6161

Major

Div = rMAC / r1 r0 = M[I0, 1];
This issue is now fixed and kalasm 2 will report that a semi-colon is expected
immediately after the divide instruction.
Attempting to send a message to an invalid task now panics the application
immediately. Previously it would be paniced when the memory was accessed during
message delivery. This makes it easier to diagnose the source of the problem.

B-6894

Cosmetic

B-6975

Minor

A HID dongle example application has been added.

B-7101

Minor

The Device Manager now returns to Active Mode before issuing a roleswitch to HCI.
It previously sent the command irrespective of the mode and hence it could fail.

B-7115

Minor

Firmware changes have improved the Bluetooth bandwidth available to a device
receiving streaming data whilst in a scatternet with a third device which was idle but
in active mode.

B-7365

Minor

The pbap_common library has been added to BlueLab, providing functionality
common to both the pbap server and client libraries.

B-7366

Minor

The pbabs library has been added to BlueLab, implementing the server role of the
Phone Book Access Profile.

B-7367

Minor

The pbabc library has been added to BlueLab, implementing the client role of the
Phone Book Access Profile.

B-7375

Minor

Using DM_LP_WRITE_POWERSTATE_REQ to configure new powerstates always
resets the state machine to the initial state; previously the existing state was
sometimes used.

B-7385

Minor

The behaviour of the DM policy manager has been improved so that it now only
retries a failed power mode change a limited number of times. It previously retried
indefinitely.

B-7901

Cosmetic

The BlueLab battery library now supports reading the internal charger voltage (for
BlueCore4-Audio ROM and BlueCore4-Audio Flash parts.)
kalasm2 now requires that code lines containing multiple expressions should have
commas separating them. For example, the following is valid syntax:

r3 = M[r3 + r2], r4 = M[I0,1], r5 = M[I4, -1];
B-8028

CS-110737-RNP1

Minor

kalasm2 will, by default, issue a warning for lines which do not have comma
separators. The command line flag "-es" promotes such warnings to errors. The
command line flag "-ns" causes the presence or lack of separators to be ignored
(that is, restores the old default behaviour). These options can be controlled from
the project properties in xIDE.

© CSR plc 2006
This material is subject to CSR’s non-disclosure agreement.

Page 31 of 60

_äìÉi~Ä»=îPKS Software Release Note

ID

Issues Resolved in BlueLab v3.4

ID

Severity

Description

B-8225

Fatal

Previously, kalasm2 reported an unspecified fatal error if source code has a block
defined within a block. Nested blocks now report a suitable error message.

B-8387

Major

The a2dp_source_dongle example application will no longer panic on the
fourteenth connection attempt to an a2dp sink if it is built as an analogue input
device.

B-8389

Minor

BlueLab now includes a hid_keyboard reference application.

B-8918

Minor

The genparse tool now accepts a prefix command in the input file which
allows multiple AT parsers to co-exist in a single application.

B-8967

Minor

TestTxData1, TestPcmLb, TestPcmExtLb, TestCfgXtalFtrim,
TestPcmTone, and TestCodecStereoLb have been added to the test

B-9136

Minor

The default debug behaviour for new installations of xIDE is now to stop the current
processor; previously it would stop all processors. This can be changed using
Tools\Options\Debug.

B-9215

Fatal

It is no longer possible to crash BlueFlash by attempting to change the transport
while a download is in progress.

B-9386

Minor

VM projects in xIDE now understand how to handle the .parse files used by
genparse.

B-9589

Major

The hfp library now parses +CME ERROR notifications correctly.

B-9593

Minor

The ConnectionReadLocalName function has been added to the connection
library to return the local friendly name.

Minor

The ConnectionSmGetAuthDevice function has been added to the
connection library to allow clients to retrieve link keys after pairing. (Use of this
function is unusual since the connection library takes care of storing link keys for
the application.)

B-9599

Major

Fixed a rare bug where the HCI would issue two identical Command Status Events
(NOP, num_hci_command_packets=1) when attempting to allow the host to
send another command packet. If the host was to send a command after processing
the first event, but before seeing the second, a credit mismatch could occur.

B-9603

Minor

Unused parameters have been removed from the AghfpSlcConnect and
AghfpSlcConnectResponse functions in the aghfp library.

B-9606

Minor

The AT commands +CIND and +CIEV in the aghfp library now send colons
instead of equals signs.

B-9653

Minor

When establishing an RFCOMM connection, parameter negotiation is now
performed for all DLCs on a mux.

B-9688

Minor

Calling ConnectionAuthDevice() with the Bluetooth Device address of the
Default user will now result in the link key of the default device being deleted. The
default device will also be removed from the security database immediately. This
means that new connections to this device will require authentication.

B-9753

Minor

The aghfp library's API has been extended to provide the means to set up/shut
down a call to a HS/HF device.

B-9811

Minor

kalasm2 incorrectly rejected type B add and subtract instructions if they included a
memory access on the left of the arithmetic operator. The fault which only applied to
opcodes where the AM field is 10 (0x2), is now fixed.

B-9832

Minor

The DSP code in the sco_dsp example application has been re-written to reduce
latency, improve audio quality and serve as a basis for simple SCO processing code
development.

B-9876

Minor

The supplied OBEX Server applications now set the Object Transfer bit of the Class
Of Device. Although not required in the profile specifications. (except PBAP) some
stacks use it for profile support.

B-9882

Minor

xIDE no longer crashes if DSP breakpoints are manipulated but the SPI cable has
been unplugged.

B-9595

CS-110737-RNP1

© CSR plc 2006
This material is subject to CSR’s non-disclosure agreement.

Page 32 of 60

_äìÉi~Ä»=îPKS Software Release Note

library.

Issues Resolved in BlueLab v3.4

Severity

Description

B-9886

Minor

A dtmf (Dual Tone Multi-frequency) library has been added to the Kalimba library
set.

B-9921

Minor

The DM has been improved so that when an ACL link enters a new Power State, the
DM will automatically update the link policy to prevent the remote device changing
the low-power mode to an undesired mode. For example, when the powerstate is
active, all sniff/park/hold requests from the remote device will be rejected.

B-9961

Minor

kalstacktrace now checks if the DSP is loaded as well as running before
attempting to read stack data from the chip.

B-9965

Minor

If kalstacktrace finds a rogue value in the stack it now displays it in the trace
with "*** Corrupt ***" to allow the user to try and work out what has
happened.

B-9984

Minor

A hid_mouse example application has been added.

B-9992

Major

The DSP assembler, kalasm2, silently accepted conditional memory writes, even
though the Kalimba DSP on BlueCore3-Multimedia always executes the resulting
write unconditionally. If assembling BlueCore3-Multimedia code, any attempt to use
conditional memory writes will now correctly generate an error.

B-10002

Minor

The AghfpSetRingRepeatInterval function has been added to the aghfp
library to control the behaviour when sending ring indications.

B-10046

Minor

vmSpy now reports the month correctly in its timestamps. Previously it was off by
one.

B-10083

Minor

SourceSize on a region source is now limited to 3K. Previously it could report
more than this for very large constants, but would fail when that memory was
accessed through SourceMap.

B-10110

Minor

The cbops part of the core library has been split into a separate library. It has been
redesigned to provide a more flexible method of routing audio through buffers on the
DSP. The copy routines, the operators and the example applications that use the
cbops library have been updated.

B-10136

Minor

vmbuilder now reports how much space is in use by the filesystem and how much
remains.

B-10138

Minor

GOEP now uses StreamMove for sending data instead of memcpy.

B-10140

Minor

With the fix to B-10138, the offset parameter in send packet functions in the
goep library which take a source became unused. This is because StreamMove
can only send from the beginning of a source and it drops the data it moves when it
finished. The offset parameter has been removed.

B-10141

Minor

The aghfp library now automatically attempts to negotiate a mutually acceptable
SCO link from the specified packet type bit mask.

B-10146

Fatal

The hfp library's internal audio connection state is now initialised correctly.

B-10178

Cosmetic

Incorrectly named GOEP source files have been changed from geop to goep.

AGHFP_CALL_HANG_UP_IND now replaces AGHFP_CALL_TERMINATE_IND
as the primitive used to indicate that a HF device wishes to reject/end a call.

B-10187

Cosmetic

B-10273

Minor

A library (piolib) has been added to allow multiple tasks to receive
MESSAGE_PIO_CHANGED messages.

B-10313

Minor

Support has been added to SPP to enable it to register DUN SDP records. This
means DUN can be a thin wrapper round SPP.

B-10580

Minor

SPP can now forward the CL_RFCOMM_CONTROL_IND which DUN needs to
perform modem signalling

CS-110737-RNP1

AGHFP_CALL_TERMINATE_IND is now used by the Call Manager to indicate
that a call has actually been terminated.

© CSR plc 2006
This material is subject to CSR’s non-disclosure agreement.

Page 33 of 60

_äìÉi~Ä»=îPKS Software Release Note

ID

Issues Resolved in BlueLab v3.4

ID

Severity

Description

B-10614

Minor

RFCOMM has been improved so that if it receives an RFC_PARNEG_REQ for an
already established DLC, it now responds with an RFC_PARNEG_CFM with the
current parameters. It previously did not respond which could cause the client to
hang.

B-10622

Minor

A bug has been fixed which meant the SourceConfigure and
SinkConfigure of messages always behaved as if VM_MESSAGE_SOME had
been passed as the value.

B-10632

Minor

A library implementing the MD5 hash function has been added (this is a VM library
and is unsuitable for large volumes of data.)
Version 2.02 of kalasm2, as shipped with BlueLab 3.3, incorrectly assembled three
instructions involving rMAC sub-register moves. The affected instructions were:

Major

rMAC2 = rMAC1;
rMAC0 = rMAC2;
Please note that no libraries or applications shipped with BlueLab 3.3 made use of
these instructions. This problem is fixed in BlueLab 3.4 (kalasm2 version 2.03).

B-10682

Major

Functions using more than 127 words of local variables no longer confuse the
BlueLab linker. Previously it would report an unrealistically low stack usage figure,
typically resulting in an application panic as the stack overflowed.

B-10687

Minor

Cleaning a DSP project now removes additional temporary files (those with dm1,
dm2, pm, kmap, kpp, or ksm extensions.)

B-10695

Minor

B-10697

Minor

Firmware changes have been made to the stream subsystem to reduce the latency
of data flowing out of the DSP.

B-10726

Major

The stereo_headset application now stores the last codec that was used to
stream audio, so when the headset connects back it can use the stored codec.

Minor

The stack usage calculation made by the BlueLab linker now includes the
run_init function as well as main. Previously it was possible for an application
where main was trivial to be given enough stack space to run main but not
run_init, resulting an application panic during the run_init function.

B-10743

Major

When used in a configuration where a full Bluetooth stack and a Virtual Machine
application are being executed on-chip, it is possible that the responses to an
inquiry-with-RSSI operation could be queued for the VM application faster than that
application can process them. In extreme cases, this could lead to the queue
overflowing and the device becoming unresponsive. This flow control issue has
been resolved.

B-10775

Minor

The connection library now supports Inquiry Scan with RSSI.

B-10801

Major

An AghfpSendError command has been added to the aghfp library.

B-10818

Major

The a2dp_source_dongle application, when configured to use the wolfson
WM8731, now correctly sets the input gain once the codec has been configured.

B-10829

Minor

The firmware has been updated to prevent the application receiving
L2CA_DATAWRITE_CFM primitives which arrive while the link is being
disconnected.

B-10846

Minor

When reporting incompatibilities between a VM application and the BlueCore
firmware, the vmbuilder tool now reports the functions which are causing the
problem. Previously it just reported the trapsets containing those functions.

B-11001

Major

The current consumption of the stereo_headset application in Bluelab v3.4 has
been reduced to match that of the av_headset_hfp application in Bluelab v3.2.

B-11015

Major

Several errors have been fixed in the HFP service record of the aghfp library.

B-10736

CS-110737-RNP1

ConnectionWritePagescanActivity no longer claims to have not been

implemented when it has.

© CSR plc 2006
This material is subject to CSR’s non-disclosure agreement.

Page 34 of 60

_äìÉi~Ä»=îPKS Software Release Note

rMAC2 = rMAC0;
B-10655

Issues Resolved in BlueLab v3.4

Severity

B-11123

Minor

A new helper function, RegionMatchesUUID128 has been added to the
region library.

B-11134

Minor

The aghfp library will now send blank CLIP notifications if no caller id details have
been specified.

B-11140

Minor

The TransformPollTraffic function has been added to detect activity on
connected streams.

B-11141

Minor

TransformFromSource and TransformFromSink have been added to find
the transform connected to a stream.

B-11158

Minor

The aghfp library primitives AGHFP_AUDIO_CONNECT_CFM and
AGHFP_AUDIO_DISCONNECT_IND now use the correct enumerated type for the
returned status code.

B-11181

Major

When a VM application was reading data from the USB bulk endpoint, data flow
could suddenly stop and never restart. The stream subsystem has been updated to
prevent this happening.

B-11210

Minor

Support has been added for Agilent 3030/3040 mouse sensors.

B-11225

Minor

.psr files with the name of the project are now passed through the C preprocessor before being passed to pscli. This allows tests for defined symbols to be
used in the .psr file.

B-11228

Minor

An issue has been resolved which could prevent xIDE from locating source files
corresponding to DSP source code.

B-11266

Minor

The Agilent sensor code now checks the sensors product ID and panics if the ID is
unknown.

B-11276

Minor

The hid_mouse application now supports Agilent 2030/2051 and 3030/3040 in a
single application.

B-11332

Fatal

Memory leaks have been fixed that occured when processing AT+CLIP and
AT+CHLD commands. A race condition that could occur when sending an AT
command if the underlying RFCOMM sink had just been removed, has been fixed.
All issues would have ultimately resulted in a firmware panic.

B-11396

Minor

The stereo_headset application now does not enable MP3 support as default.
It must be turned on using a user PS key.

B-11417

Minor

GOEP Remote get commands referred to GOEP_REMOTE_GET_DATA_IND this
has been corrected to GOEP_REMOTE_GET_MORE_DATA_REQUEST_IND.

B-11437

Minor

Support for the HID keyboard matrix sensor type has been added.

B-11453

Minor

The aghfp library no longer rejects unrecognised AT commands by responding
with ERROR. It is now the responsibility of the app to handle unrecognised AT
commands.

B-11471

Minor

Description

Due to a bug in the Kalimba assembler zeroing bank 2 registers would always be
coded as a type A instruction. There is a type C instruction which could be used and
would allow more flexible parallel memory accesses.
This bug has been resolved and the Kalimba library code has been updated to
reflect this.

B-11501

Minor

Support for external events in ButtonParse has been added.

B-11504

Minor

Buttonparse now works with active low PIOs by using
PSKEY_PIO_WAKEUP_STATE.

B-11531

Minor

app/ps/ps_if.h now includes the value of PSKEY_PIO_WAKEUP_STATE for
use by buttonparse.

B-11534

Minor

The VM application can now send reports on the HID interrupt channel.

B-11541

Minor

Hid Keyboard security has been improved

B-11575

Minor

BlueLab 3.4 includes the same version of the mono headset as the headset update
kit made available for BlueLab 3.3.

CS-110737-RNP1

© CSR plc 2006
This material is subject to CSR’s non-disclosure agreement.

Page 35 of 60

_äìÉi~Ä»=îPKS Software Release Note

ID

Issues Resolved in BlueLab v3.4

Severity

Description

B-11576

Major

The connection library has been updated connection failure due to timeout
correctly.

B-11577

Major

CPU usage when handling HID input reports has been reduced.

B-11599

Minor

New SourceConfigureHidSensor traps have been added to configure HID
sensors. These supersede the use of SourceConfigure for this (as used in
BlueLab v3.3), adding type safety and additional parameter checking.

B-11639

Major

When using the raw transport, it was possible for a burst of data arriving on the
UART to be ignored if it had a particular timing and no further data was ever
received. This no longer occurs.

B-11656

Minor

The task registered using MessageSystemTask now receives
MESSAGE_USB_SUSPENDED messages when BlueCore suspends and resumes
on the USB bus. These are only sent when BlueCore is self-powered.

B-11690

Cosmetic

Minor changes in coding style have been made to reduce the code footprint of the
hfp, aghfp and connection libraries. These have reduced the size of the
mono headset by over 4% compared to BlueLab v3.3.

B-11725

Minor

StreamConfigure(STREAM_UART_CONFIG, ...) now only modifies
settings if the user transport is selected. Previously it could be called for any
transport, with undefined consequences.

B-11790

Minor

The response and hold functions in the aghfp library have been revised to better
support real use cases.

M-443

Cosmetic

Double-clicking on a BlueStack primitive in the output tabs no longer causes xIDE to
prompt for a non-existent file.

M-469

Major

Stepping over functions in DSP code in xIDE incorrectly stepped into the function. It
now behaves correctly.

M-478

Minor

xIDE no longer produces misleading messages when debugging DSP applications
in their own workspace.

M-493

Major

If a breakpoint was set at a multiple word DSP instruction, then xIDE would only
execute the final word of the instruction when resuming execution after hitting the
breakpoint. This issue is now resolved.

M-522

Fatal

Data symbols are now available when debugging DSP applications using xIDE, in
both the variable and watch windows.

M-730

Major

xIDE now discards content from the debugger output windows to keep them below
1000 lines and avoid excessive memory consumption when running for extended
periods.

M-758

Minor

xIDE now remembers window positions on a per-project basis; previously if two
projects had the same kind of window open, the windows would reopen in the same
location.
Run in xIDE previously ran the active project, along with the remaining projects if
action on run is set to Start all processors. This behaviour was undesirable since the

M-759

Major

M-766

Minor

Multiple projects in a workspace can include the same source file. If a breakpoint is
set in the source file xIDE will locate it in the current project if it includes the file.
Otherwise it sets the breakpoint in the first project which does include the file.

M-773

Major

Running from breakpoints now works as expected when interrupts are enabled,
rather than merely executing an interrupt.

M-790

Major

M-814

Minor

xIDE now correctly preserves the location of undocked windows between sessions.

Minor

Kalimba breakpoints sometimes did not work when the vm was restarted by the
debugger. This issue has been resolved.

DSP application should be launched by the VM application. This is fixed - running
now always selects the VM project if one is present.

Kalimba watch window now understands a subscript format. For example:

M-828

CS-110737-RNP1

VarName[Offset] displays the word of memory at the address of
VarName+Offset.

© CSR plc 2006
This material is subject to CSR’s non-disclosure agreement.

Page 36 of 60

_äìÉi~Ä»=îPKS Software Release Note

ID

Issues Resolved in BlueLab v3.4

ID

Severity

Description
Under some circumstances, breakpoints set on lines without any code would be
moved to sensible lines and the following message generated in the debug window:
"Failed to install breakpoint at address [incorrect
address], is this really RAM?". This issue has been resolved.

Minor

M-862

Minor

xIDE now notices that the dsp has stopped when it hits a data breakpoint.

M-863

Minor

The Kalimba DM breakpoint dialog no longer rejects symbols containing
underscores.

M-866

Minor

Writing to registers no longer causes the kalimba to jump to the interrupt service
routine.

M-867

Minor

The kalimba symbol table on occasion became corrupt after the second time the
debugger was started, causing breakpoints to behave erratically. This issue is now
resolved.

M-868

Minor

Running from a dsp break instruction no longer crashes the dsp application.
Table D.1: Issues Resolved in BlueLab v3.4

CS-110737-RNP1

© CSR plc 2006
This material is subject to CSR’s non-disclosure agreement.

Page 37 of 60

_äìÉi~Ä»=îPKS Software Release Note

M-854

Issues Resolved in BlueLab v3.3

Appendix E

Issues Resolved in BlueLab v3.3

The following issues have been fixed since BlueLab v3.2 was released.
Severity

B-514

Minor

gcc saves constant memory by placing zero initialised global variables into a memory
segment that is zero initialised at start-up. They were previously treated in the same
way as any other constant initialised variables.

B-3551

Minor

The GOEP & FTP client libraries now implement the optional OBEX level authorisation
feature.

B-3584

Minor

HID streams and transforms have been added to BlueLab3.

B-4355

Minor

The connection library has been optimised to use fewer globals.

B-4801

Minor

PcmClearRouting and PcmClearAllRouting calls have been added to the
PCM library; these are convenience functions which are equivalent to calling
PcmRateAndRoute.

B-4804

Minor

Type B instructions (those involving a constant) can contain only one memory access,
but Kalasm2 would incorrectly accept code of the form r? = M[r?] + M[k16],
generating code corresponding with the instruction M[k16] = rN +rN instead of
reporting an error. This is now fixed.

B-4826

Minor

Support of Radio Power Tables for EDR has been
added,(PSKEY_LC_ENHANCED_POWER_TABLE) in PSTool.

B-4832

Minor

Kalasm2 would incorrectly interpret binary '-' as '+' in some circumstances, such as in
the code: r1 = M[r1 - 1]; This is now fixed.

B-4833

Minor

kalasm2 would incorrectly accept M[r1-r2] in an instruction. This has now been
fixed.

B-5093

Minor

kalasm2 would incorrectly accept rMAC sub-registers as source operands, coding
them simply as rMAC. This is now fixed.

B-5136

Minor

kalasm2 now outputs a memory usage summary for code and data groups.

B-5211

Major

The ChargerEnable, ChargerSupressLed0, and ChargerStatus
functions have been added to support the charger hardware on BlueCore4-Audio
ROM. Where appropriate these functions also support the charger hardware on
BlueCore3-Audio Flash.

B-5214

Minor

The functions PioDimLed0 and PioDimLed0 have been added to control the
dimmed LED hardware on BlueCore4-Audio ROM.

B-5778

Minor

The mp3_decoder project files for stereo_headset application have been
moved into the BlueLab mp3 add-on and are not installed by default.

B-5836

Minor

VmSetPcmClock will now return FALSE when passed illegal values; previously it
would indicate success but ignore the value.

B-5896

Minor

Using xIDE to single step and step over VM code is now faster.

B-6091

Minor

The automatic gain control algorithm used by BlueCore has changed, in a way which
should reduce power consumption. The residual bit error rate on D8PSK is enhanced,
and the maximum input signal level (primarily EDR) is raised.

B-6116

Minor

Support for HID (Human Interface Device) has been added.

B-6212

Cosmetic

B-6227

Minor

The ConnectionWriteInquiryAccessCode function has been added to the
connection library.

Major

When streaming SBC audio from the a2dp_source_dongle to the
av_headset_hfp, there were glitches every several hours. This was due to clock
drift between the two devices. The problem has been addressed by DSP changes in
B-6347.

B-6281

CS-110737-RNP1

Description

gcc now has certain optimisations on small leaf functions turned on by default.

© CSR plc 2006
This material is subject to CSR’s non-disclosure agreement.

Page 38 of 60

_äìÉi~Ä»=îPKS Software Release Note

ID

Issues Resolved in BlueLab v3.3

Severity

Description

B-6505

Minor

Scripts to help Matlab users to inspect DSP state (such as buffer levels) have been
added to the tools/matlab directory.

B-6512

Minor

The rfcomm primitive set has been extended to include RFC_EX_ESTABLISH_IND
primitive which contains the Bluetooth address of the remote device. If extended
primitives are enabled this is sent instead of the RFC_ESTABLISH_IND primitive.

B-6516

Minor

Debugging code built with leaf optimisation no longer breaks the Call Graph
functionality. (This includes the library code supplied with BlueLab33.)

B-6521

Minor

VM extended versions of the Device Manager Synchronous Connection primitives
have been added.

B-6749

Minor

The DM_SCO primitives have been removed from Bluestack as they have now been
deprecated by the DM_SYNC API.

B-6800

Cosmetic

Accessing L2CAP and RFCOMM data through streams is now mandatory. (This
feature has always been used by the BlueLab3 connection library.) The ability to
receive DATA_IND primitives from BlueStack has been removed, along with the
parameters to StreamConfigure to control this.

B-7030

Minor

Added DM_EX versions of the DM_SYNC_RENEGOTIATE_xxx primitives which
allow the VM to reference a connection using the Sink rather than HCI handle.

B-7033

Minor

A new feature has been added to the VM to allow it to access the USB Isochronous
Out endpoint. This allows a device to send PCM audio to USB Host, such as a PC.

B-7036

Major

connection library L2CAP connections can now be handled by tasks other than
the one registered to the PSM.

B-7042

Minor

A new AGHFP library implementing the audio component of the hands-free profile has
been added.

B-7050

Minor

xIDE will now relink a VM application if it detects that a library has changed.

B-7092

Minor

The library call CodecSetSideToneGain has been added to control the sidetone
gain on BlueCore4-Audio ROM.

B-7097

Minor

The MP3 decoder libraries available for BlueLab now support mpeg2 and mpeg2.5
sample rates of 8-22.025KHz.

B-7159

Minor

Previously, kalasm2 displayed the string NO VERSION CONTROL instead of a
version number. A version number has now been added, and should be quoted in
requests for help.

B-7160

Minor

The version of gcc included with BlueLab now includes the BlueLab version number
when you pass --version on the command-line.

B-7224

Minor

The VmTransmitEnable function has been added to disable the transmitter.

B-7266

Minor

The hfp library now uses the hfp_connect_rejected status code in the
HFP_SLC_CONNECT_CFM message if the connect attempt fails due to the remote
end rejecting the connection.

B-7321

Minor

The connection library now requests profile libraries to vote with their link policy
settings on rfcomm disconnect.

B-7354

Minor

The connection library now asks tasks with sinks on a given ACL to vote with their
link policy settings every time an audio connection is connected or disconnected on
that ACL. This allows a profile library to specify a different link policy if it has an audio
connection open

B-7437

Fatal

The unusual case of StreamConnect from the DSP to the DSP from a VM
application is now handled correctly in the firmware.

B-7452

Fatal

The firmware could panic when a DM_EX_SYNC_CONNECT_COMPLETE_IND was
generated with a status other than success. This has been fixed.

CS-110737-RNP1

© CSR plc 2006
This material is subject to CSR’s non-disclosure agreement.

Page 39 of 60

_äìÉi~Ä»=îPKS Software Release Note

ID

Issues Resolved in BlueLab v3.3

ID

Severity

Description
The following new codec gain control traps have been added:

CodecSetRawInputGainA
CodecSetRawInputGainB
B-7476

Minor

CodecSetRawOutputGainA
CodecSetRawOutputGainB
CodecEnableMicInputGainA
CodecEnableMicInputGainB.

Minor

The gavdp library now cleans up all connections properly if remote end does not
respond to a CLOSE request.

B-7493

Minor

IR OBEX has the concept of parameters that are specific to a particular application.
This has been implemented.

B-7501

Cosmetic

B-7502

Minor

The hfp library will no longer inform its client of +CNUM, +BTRH or +CLCC
notifications, sent by an AG, if they contain parameters that are out of spec.

B-7507

Minor

xIDE can now create .button or .parse files in BlueLab.

B-7584

Minor

The hfp library now passes a HFP_CALLER_ID_IND message to the client even if
the AG did not send the number of the caller.

B-7611

Major

If a file was selected and successfully downloaded then changing the filename and
trying to do a subsequent download caused a crash. This has been fixed.

B-7747

Minor

The VM will now immediately panic an application which attempts to call a NULL
function pointer. Previously it would mysteriously restart the application.

B-7762

Minor

The spp library now handles the MESSAGE_SOURCE_EMPTY message.

B-7792

Minor

The avrcp library now stores the service records it needs in constant space.

B-7801

Minor

The battery charger current on BlueCore4-Audio ROM can now be controlled from the
VM application using the ChargerSetChargeCurrent call.

B-7831

Minor

If a .button file is included in an application, PIO states are now read immediately
when the application starts, so events are reported as defined in the .button file
from startup.

B-7841

Minor

Final negotiated parameters (link type and bandwidths) are now passed to an
application on successful creation of a synchronous connection.

Buttonparse can now decode PIO events that are separate from PIOs that are
used for buttons.

B-7862

Minor

Previously, Kalasm2 would not allow code to completely fill available program
memory, because automatically generated zero prefix instructions were being
counted, despite these being stripped out at link time. This problem has now been
fixed.

B-7944

Major

An issue has been resolved in BlueFlash which could lead to it reporting an incorrect
firmware ID.

B-7952

Minor

An issue has been resolved in the SPI transport which could prevent tools such as
BlueFlash and xIDE in BlueLab from correctly identifying the chip being used.

B-7953

Minor

The hfp library message HFP_INTERNAL_SDP_REGISTER_CFM is now allowed
in the connecting state.

B-8000

Minor

The BlueLab reference documentation is now built at the same time as the VM
libraries, so it automatically reflects any local changes that might have been made.

B-8011

Minor

A display library has been added for controlling an LDA33S481J1D module
(containing an PCF8548 LCD controller) over I2C.

B-8040

Minor

HFP will now issue a request for extended error result codes if the AG supports them.

CS-110737-RNP1

© CSR plc 2006
This material is subject to CSR’s non-disclosure agreement.

Page 40 of 60

_äìÉi~Ä»=îPKS Software Release Note

B-7490

Issues Resolved in BlueLab v3.3

ID

Severity

Description

B-8047

Minor

The CL_DM_MODE_CHANGE_EVENT message has been added to the
connection library to allow the application to monitor power-saving settings.
Applications must call ConnectionInitEx with suitable parameters to enable this
message.

B-8115

Minor

The gavdp and a2dp libraries now notify their client when link loss occurs with a
new error code in the close message.

B-8139

High

HFP will now inform applications of the phone number type (i.e. national, international
etc) when +CNUM, +CLIP, +CCWA and +CLCC notifications are received from the
AG.

B-8153

Minor

The hfp library now sends VGS commands when connected over an HSP
connection with a Fujitsu F900iT.

B-8214

Minor

When the sniffed link is unsniffed, BlueCore pauses data on all links during the unsniff
of the sniffed link, unpausing afterwards. This causes delays in the data on the
streaming link, which lead to breakups in an audio stream.
The firmware has been changed so that it does not pause data on all links in this
scenario. This resolves the problem in the case where the headset is master of both
links and in the case where the headset is master of the AV link and slave of the
phone. Work to support other scatternet scenarios is ongoing.

B-8264

Major

The cbop operator upsample and mix would incorrectly update the parameter
structure (corrupting the linked list) if it was used as two mono operators processing a
stereo stream. This has been fixed.

B-8292

Major

The hfp library has been modified to correctly parse all possible formats of +CLCC,
+CNUM and +COPS notifications received from an AG.

B-8316

Fatal

When running higher layers on chip (either with a VM application or when using BCHS
with L2CAP or higher layers on chip) and when running more than one simultaneous
connection, it was possible for the firmware to leak flow control tokens until eventually
L2CAP data flow would stop on all but one link (and that link might run slowly). This
has been resolved.

B-8318

Minor

The StreamEnableSniffSubrating calls has been added to enable subrating
on a connection.

B-8416

Minor

During a GOEP connect request where the server forces authentication, a client can
cancel the request by issuing a disconnect. GOEP accepts the disconnect and
cancels the connect request.

B-8430

Minor

A change has been made to the code generator for gcc which can prevent a fatal
register spill when comparing 32-bit values.

B-8435

Minor

A headset application, based closely on BC4-headset, has been added to BlueLab.

B-8441

Major

gcc no longer experiences an internal compiler error in certain code involving a
memcpy between structure elements.

B-8455

Minor

A new stereo_headset application (corresponding to BlueTunes1) has replaced
the av_headset_hfp application which shipped with BlueLab3.2.

B-8460

Minor

With an active SLC in sniff mode, data sent over the link will force the link exit sniff
and become active for 1 second. Previously, this was 5 seconds. Some phones spam
the headset with CIEV messages which resulted in higher standby current
consumption.

B-8473

Minor

gcc no longer experiences an internal compiler error in certain code involving a
memcpy between structure elements.

B-8493

Minor

An enhanced firmware variant for BlueCore3-Multimedia has been added to
BlueLab3.3 which offers limited EDR support.

CS-110737-RNP1

© CSR plc 2006
This material is subject to CSR’s non-disclosure agreement.

Page 41 of 60

_äìÉi~Ä»=îPKS Software Release Note

A problem has been observed when BlueCore is in a scatternet or piconet with two
links, one of which is in sniff and the other is streaming data to BlueCore. A typical
use case is an AV headset that is streaming AV data from a PC while also connected
to a phone, which periodically unsniffs the link and sends data such as signal strength
reports.

Issues Resolved in BlueLab v3.3

ID

Severity

B-8497

Major

gcc no longer generates invalid multiplies by register AH and AL.

B-8536

Minor

genparse no longer needs the –task, -dict and -find command-line

B-8538

Minor

The connection library no longer sends a CL_RFCOMM_DSICONNECT_IND
message to the client task if the local device rejected the rfcomm connect attempt.

B-8553

Minor

The USB Audio EndPoint descriptor in the a2dp_source_dongle application has
been updated to include the bRefresh and bSyncAddress fields required by the
USB2.0 chapter 9 tests.

B-8577

Minor

Previously, kalasm2 allocated addresses to code and data based on which group had
the least space remaining. This has been improved, such that group allocation follows
the order of segment declarations in default.asm. For example, given a segment
declaration DM corresponding to two groups, DM1Group and DM2Group, then, for
any allocations to segment DM, DM1Group will be filled to capacity before any data is
allocated to DM2Group.

B-8607

Minor

A unified_no_fs firmware variant for BlueCore4-External has been added to
BlueLab3.3 for specific applications which cannot use the read-only filesystem.

B-8615

Minor

The gcc code generator has been improved to give slightly smaller output in certain
code similar to a-=b where a is 32-bits wide and b is 16-bits wide.

B-8728

Cosmetic

B-8731

Minor

B-8786

Minor

Firmware support has been added for Persistent Store reading from the DSP.

B-8787

Minor

Firmware support and VM access have been added for passing longer messages
between the DSP and the application.

B-8824

Cosmetic

B-8841

Minor

The identifiers for some BlueCore variants were out of date. These have been
updated.

B-8886

Minor

The connection library now correctly rejects an rfcomm connection attempt from a
remote device when the channel is already in use

B-8919

Minor

gcc no longer generates incorrect code for certain obscure circumstances involving
sign extension of bit fields.

Minor

options; they are now the default.

The accuracy comments of the sin routine have been updated, as they previously
implied it was less accurate than it actually is.
The PSKEY_ prefix has been removed from the Programmer IDs. This helps location
of keys by allowing skipping to a key in PSTool by pressing the letter it begins with.

If the selected firmware cannot be found for the hardware in use, xIDE now produces
a sensible error message (previously it would complain about being unable to
determine if the firmware supported the filesystem).

The codec_decoder Kalimba app sometimes produced slight ticking clicks in the
right earphone. This was due to the interrupt rate for audio copies not being quite fast
enough in certain instances. To speed up the interrupt rate the timer scheduling
function $timer.schedule_event_in_period is now used rather than

$timer.schedule_event_in
B-8951

Major

An issue with gcc has been fixed where function pointers in arrays or structs could (in
some limited circumstances) cause the compiler to crash.

B-8956

Major

A cross-over audio scenario which could cause interop problems with the Nokia 6230
has been worked around in the hfp library.

B-9031

Major

If EnergyEstimationOn() was invoked from the VM, even if it returned a
success value, no MESSAGE_ENERGY_CHANGED would subsequently be
generated. This has been resolved.

B-9035

Minor

A new function, VmAmuxClockEnable has been added to enable and disable the
clock which some BlueCore4 variants can output on AIO0.

Minor

Saturation code has been added to the SBC joint_stereo_processing
routines of the encoder and decoder. Note: Previous tests have not shown overflow
occurring, but the addition of some saturation code was thought worth while as a
safety measure.

B-9040

CS-110737-RNP1

© CSR plc 2006
This material is subject to CSR’s non-disclosure agreement.

Page 42 of 60

_äìÉi~Ä»=îPKS Software Release Note

B-8944

Description

Issues Resolved in BlueLab v3.3

Severity

Description

B-9042

Minor

MessageSystemTask and MESSAGE_USB_ENUMERATED have been added to
the VM libraries to allow an application to receive an indication when USB
enumeration is complete.

B-9043

Minor

The cbops routines upsample_mix_mono and upsample_mix_stereo
incorrectly check the amount of tone data used in each call. This means the routine
will always assume there is tone data available to mix.

B-9047

Fatal

Fixed a problem where the USB to-host Isochronous Endpoint which had been
configured from the VM would be disabled following USB Reset. This prevented USB
Audio flowing to the PC.

B-9100

Major

The codec library now provides a new API, CodecSetInputGainNow and
CodecSetOutputGainNow for setting the codec gain immediately.

B-9172

Minor

A user editable filter has been added to PSTool's display of PS Keys.

StreamSourceConfigure and StreamSinkConfigure can now be used

B-9175

Minor

B-9356

Minor

B-9372

Minor

Fields have been added to the VM USB EndPointInfo structure to allow a VM
application to append class specific fields to an EndPoint descriptor.

B-9374

Minor

USB enumeration for USB Audio devices has been updated in order to interoperate
with MacOS X.

B-9413

Minor

The VM_SOURCE_MESSAGES and VM_SINK_MESSAGES keys can now be used
with SourceConfigure and SinkConfigure to selectively suppress
MORE_DATA and MORE_SPACE messages.

B-9470

Minor

A bug has been found where by the routines $cbuffer.set_write_address
and $cbuffer.set_read_address could overwrite the memory at address 0.
This would only occur if code accessed an MMU port outside of an interrupt when a
stream disconnection occurred. This bug has been fixed so that address 0 is not
written to.

B-9473

Minor

A connection library API has been added to allow application to register trusted
devices.

B-9481

Minor

The font library functions are now supported by the unified firmware supplied with
BlueLab (previously they were only present in special customer-specific builds.)

B-9485

Minor

Support has been added to kalpac2 and the firmware to allow the DSP on BlueCore3Multimedia to access data values from flash on BlueCore3-Multimedia_r03 and later.
See examples/kalimba_flash_access_example.

B-9512

Cosmetic

Shortcuts to PSTool, BlueFlash, VMSpy and AVControl utilities has been added to the
Start menu.

B-9535

Minor

In goep_hander.h function handleSDPServSrchAttrCfm, there is a check
to see if the returned SDP attribute contains an RFCOMM channel. The code was
repeated, a copy of the code has been removed

B-9539

Minor

xIDE now passes .button files through the C preprocessor which allows #ifdef
to be used to adjust for multiple hardware configurations.

B-9579

Minor

Kalimba projects now have individual project properties to allow more useful
properties to be listed in a user-friendly way.

B-9664

Minor

In the test_tonegen example application in BlueLab the psr file was incorrectly
named, matching the name of the Kalimba project not the VM project.

B-9727

Major

DFUWizard is not included with this release of BlueLab.

B-9759

Minor

Values being sent over byte-oriented streams to the host (StreamHostSink) could
be sign-extended into the adjacent byte. This has been fixed.

CS-110737-RNP1

for connected streams and have a boolean return value to indicate if the request was
not possible.

Nested interrupt support in the Kalimba DSP library has been turned off by default to
ease debugging with xIDE. To enable it see the define comment at the top of

interrupt.h

© CSR plc 2006
This material is subject to CSR’s non-disclosure agreement.

Page 43 of 60

_äìÉi~Ä»=îPKS Software Release Note

ID

Issues Resolved in BlueLab v3.3

Severity

Description

B-9787

Minor

The Kalimba Matlab tools kalvarprs and kalprocessor were locked between
calls which meant they were not cleared by clear all. This is unnecessary and the lock
has been removed.

B-9812

Major

Attempting to StreamConnect a FileSource or StreamAudioSource to a
PcmSink when PCM port 0 has been configured to a rate of 0 no longer causes a
firmware panic.

B-9830

Major

The sco_dsp and sco_master example applications have been updated to use
CodecSetRawInputGainA/B and CodecSetRawOutputGainA/B instead
of CodecSetInputGainA/B and CodecSetOutputGainA/B.

B-9843

Major

On BlueCore3-Multimedia, the internal CODECs now operate correctly when routed to
slots 2 or 3.

M-375

Minor

Fixes have been made to make stepping Kalimba in xIDE faster.

M-463

Minor

Go To Line now works correctly in xIDE when the active project is a Kalimba project.

M-480

Major

Many problems with multi-project workspaces in xIDE have been fixed.

M-524

Cosmetic

Starting a search in xIDE with some text selected now defaults to searching for that
text.

M-579

Cosmetic

An issue has been resolved which could result in xIDE intermittently ignoring uses of
F4 to go to the next compile error.

M-591

Minor

File Open from within xIDE now includes .button, .parse and .asm files in the
default filter.

M-601

Major

Changing the number format of a DSP register in the register window in xIDE no
longer changes the on chip value of the corresponding register.

M-605

Minor

The BlueStack tab in xIDE now correctly decodes the states in the
DM_LP_WRITE_POWERSTATES_REQ primitive.

M-652

Major

Hitting the escape key when xIDE dialogues appear now cancels the operation;
previously the operation could sometimes proceed.

M-664

Minor

An issue has been resolved which could result in xIDE opening the same file twice in
two different buffers.

M-699

Minor

xIDE could fail to display the parameters of functions that don't contain any automatic
variables. This has been fixed.

M-703

Minor

xIDE now shows the full path of open files as a tool tip if the mouse pointer is held
over the file tab of the editor window.

M-726

Minor

xIDE no longer tries to connect over SPI to identify the chip being used when
compiling a single file (using Ctrl+F7).

M-748

Major

Using a single workspace for VM and Kalimba projects caused a slowdown in traffic to
and from the chip. This has been fixed.

M-750

Fatal

The licence file has been modified to allow use the BlueLab version of xIDE from
within a Terminal Services session.
Table E.1: Issues Resolved in BlueLab v3.3

CS-110737-RNP1

© CSR plc 2006
This material is subject to CSR’s non-disclosure agreement.

Page 44 of 60

_äìÉi~Ä»=îPKS Software Release Note

ID

Issues Resolved in BlueLab v3.2

Appendix F

Issues Resolved in BlueLab v3.2

The following issues were fixed in the BlueLab v3.2 release.
Severity

B-998

Minor

If a peer device opens and then closes a SCO connection before the application has a
chance to respond with DM_SCO_CONNECT_RES, a DM_SCO_DISCONNECT_IND is
now sent (previously no primitive was sent to indicate the disconnection.)

B-3579

Minor

The MessageStatusTask and StatusQuery calls have been introduced; these
allow querying of link status which was performed using the event library in BlueLab2.
The examples/test_status application illustrates their use.

B-3839

Minor

The connection library no longer rejects multiple rounds of RFCOMM parameter
negotiation.

B-4026

Cosmetic

The security related function calls in the connection library now take a uint32 as the
channel parameter (previously they took a uint16 which was passed to BlueStack as a
uint32.)

B-4175

Cosmetic

The code generated by genparse has been adjusted to lint cleanly, but no functional
changes were involved.

B-4390

Minor

The examples/test_headset application supplied with BlueLab3.0 and 3.1 was
incomplete and has been removed from BlueLab3.2. It will be replaced with a full
application in a later release.

B-4412

Minor

In the a2dp library a number of debug panics have been removed. If this error
condition occurs the a2dp library now sends an error message instead.

B-4572

Major

gcc no longer generates invalid calling patterns for obscure cases involving 32-bit
division where the result is passed to functions with many arguments.

B-4639

Minor

xIDE now correctly handles the case where both a .button file and the .c file it
generates are part of a project. Previously it would cause an error from the linker.

B-4699

Fatal

SPI transports, no longer fail on fast ( > 2.1 GHz ) machines. The problem was caused
by a signed integer being used for storing the clock speed.

B-4925

Minor

The AV_Control debug application for the PC no longer displays the SBC format
and bitpool. This is a result of changes made to CODEC negotiation in the on-chip
application.

B-5007

Minor

On receiving a DM_SM_ENCRYPTION_CHANGE message from BlueStack the
connection library now sends a CL_SM_ENCRYPTION_CHANGE_IND message to
each task that owns a connection on that ACL.

B-5011

Minor

The ConnectionSmEncrypt function has been added to the connection library.

B-5012

Minor

The CL_SM_REMOVE_DEVICE_CFM message has been removed from the
connection library interface as it was never sent.

B-5038

Fatal

B-5086

Minor

The documentation for the ConnectionSmSetSdpSecurityIn() function has
been updated to make its usage clearer, and its use in the supplied code has been
made more consistent.

B-5133

Minor

Within BlueLab applications, MORE_DATA messages used to be generated for every
piece of data which arrived. The firmware has been updated to combine such
messages automatically when they would be adjacent. This can vastly reduce the
number of such messages seen by the application, and reduces the likelihood that a
flood of messages can crash the firmware.

B-5167

Minor

The a2dp_source_dongle application no longer initialises a superfluous instance
of the codec library when USB_AUDIO_MODE is defined.

B-5230

Fatal

kalasm2 now works reliably on Windows XP SP2; problems included errors being
reported incorrectly and also incorrect assembler output.

CS-110737-RNP1

Description

kalasm2 should no longer report ERROR linking ????.klib "already in

Module $mymodule".

© CSR plc 2006
This material is subject to CSR’s non-disclosure agreement.

Page 45 of 60

_äìÉi~Ä»=îPKS Software Release Note

ID

Issues Resolved in BlueLab v3.2

Severity

Description

B-5236

Minor

The BlueLab toolchain has been extended to support large read-only filesystems on
custom hardware using 16-Mbit of flash.

B-5248

Minor

gcc no longer outputs redundant nop instructions.

B-5249

Minor

The hfp library now sends a HFP_ENCRYPTION_CHANGE_IND message to the
application task in response to receiving a CL_SM_ENCRYPTION_CHANGE_IND
message from the connection library.

B-5250

Minor

In HFP mode, if a remote device disables encryption and does not re-enable it within 5
seconds, the av_headset_hfp application will now disconnect the Service Level
Connection to that device.

B-5277

Minor

The a2dp library now allows switching between SBC rates by passing in configuration
values, rather than requiring the profile library to be rebuilt.

B-5325

Minor

The gavdp library Reconfigure error codes have been reworked to be compliant to
AVDTP test TP/SIG/SMG/BI-14-C

B-5332

Minor

The connection library has been updated to use the newly added power states
interface to BlueStack. The connection library no longer needs to manage switching
between the different low power modes as this is done automatically by BlueStack
based on a power table supplied to it.

B-5339

Minor

A vGen library has been added to help OBEX applications generation vCard-like
values.

B-5380

Major

The connection library now correctly handles crossover between incoming and
outgoing L2CAP connections.

B-5390

Minor

Fixed a memory leak in av_headset_hfp, av_headset, and
a2dp_source_dongle when AVRCP requests are received in unexpected states.

B-5397

Minor

The avrcp library now rejects L2CAP connection requests if it is currently not in the
correct state to accept an incoming connection.

B-5414

Minor

Adding and removing files from the image/ directory now forces the read-only filesystem
to be rebuilt (previously it was only rebuilt if a file was added with a date-stamp later
than the last time the filesystem was built.)

B-5425

Minor

When removing a device from the list of paired devices the connection library did
not remove it from the security manager in BlueStack. This would allow a device that
had been removed from the list of paired devices to still connect, until a reset had been
performed.

B-5426

Minor

A debug panic has been removed from the connection library; it could be triggered
when it received an RFC_ESTABLISH_CFM message for a connection that had
already been disconnected.

B-5427

Cosmetic

B-5438

Major

The A2dpConfigure()function has been removed because it had no effect and if
exposed required qualification.

B-5440

Minor

The l2cap_mtu parameter has been removed from the GavdpInit function as it
was not being used.

B-5458

Major

In the spp library, the SPP_CONNECT_CFM message now correctly contains the SPP
profile instance pointer.

B-5465

Minor

The battery library function BattInit has been renamed to BatteryInit.

The av_headset_hfp headset application cancels the
BUTTON_PLAY_PAUSE_REL message on a failure to create an SLC connection so it
no longer continually attempts to connect the SLC if the first attempt failed.

B-5475

Minor

The connection library now sends a CL_DM_ACL_CLOSED_IND message
whenever an ACL is closed. The message is sent to the task registered with the
connection library as the main client task.

B-5476

Minor

The hfp library now correctly handles rejecting a call while another call is active.

B-5480

Minor

The gavdp library now rejects malformed set_configuration requests where
more than one bit is set in any particular configuration field.

CS-110737-RNP1

© CSR plc 2006
This material is subject to CSR’s non-disclosure agreement.

Page 46 of 60

_äìÉi~Ä»=îPKS Software Release Note

ID

Issues Resolved in BlueLab v3.2

ID

Severity

Description

B-5485

Medium

MPEG-2/4 AAC support added in a2dp library

B-5492

Minor

The goep library no longer calls ConnectionSmSetSdpSecurityOut to disable
SDP security; it now leaves this policy decision to the application.

B-5496

Minor

The debug variant of the ftpc library has been updated to perform additional checking
(as with other BlueLab libraries).

B-5498

Minor

The debug variant of the ftps library has been updated to perform additional checking
(as with other BlueLab libraries).

B-5510

Minor

GAVDP_CONFIGURE_CODEC_IND message no longer includes a media_sink

B-5514

Major

Fixed a bug in the AVRCP state machine of the av_headset_hfp and
av_headset applications where receiving a START with an AVRCP connection

B-5525

Minor

Ringtones can now be played from locations other than VM constant space, such as
stack memory or dynamic memory.

B-5526

Minor

Playing ringtones from the file system via audio sequence rather than using streams is
no longer supported.

B-5527

Minor

A number of fields in library messages have been renamed in order to conform with
BlueLab coding conventions. Messages with pointer fields name ptr have had their
length field renamed to size_ptr.

B-5528

Major

gcc no longer overwrites arguments in functions which use partially initialised unions.

B-5533

Minor

The av_headset_hfp headset application now accepts an incoming AVRCP
connection when it is in the "ready" state. Previously it refused and then opened later.

B-5543

Minor

The gavdp library will now always return a GAVDP_START_CFM when there is a
crossover between two devices directing GavdpStart at each other.

B-5557

Minor

A debug variant has been added for the oppc and opps libraries.

B-5564

Minor

When using stream-based RFCOMM connections from a BlueLab application, the
RFCOMM streams are destroyed less aggressively. This means that the sink in an
RFC_RELEASE_IND generated by BlueStack is valid whereas previously it was
always zero.

B-5570

Minor

field. This field was invalid and the SEID should be used to identify the connection.

The gavdp library now determines whether to send a GAVDP_OPEN_IND or a
GAVDP_OPEN_CFM message depending on the device opening the AV channels
rather than on the SEP role.

B-5585

Minor

The gavdp library now delays creation of internal data structures until a new
connection instance is being created.

B-5592

Minor

The gavdp library now delays creation of internal data structures until a new
connection data is being created.

B-5598

Minor

An ftp_server application has been added.

B-5601

Minor

The connection library API functions ConnectionSmSetTrustLevel and
ConnectionSmDeleteAuthDevice now return void instead of uint16.

B-5610

Minor

Error robustness of sbc and mp3 decoding improved

B-5611

Fatal

gcc now generates more efficient code for 32-bit by 32-bit multiplication. (This also fixes
an issue where the code could be incorrect in rare circumstances.)

B-5612

Minor

ISR (Interrupt Service Routine) now clears all length registers so that routines that are
called from an interrupt have the length registers cleared.

B-5613

Minor

B-5616

Minor

CS-110737-RNP1

The naming convention for Kalimba DSP library routines has changed from

$lib_routine to $lib.routine
gcc now generates correct code for multiplying a 32-bit integer by a constant power of
2.

© CSR plc 2006
This material is subject to CSR’s non-disclosure agreement.

Page 47 of 60

_äìÉi~Ä»=îPKS Software Release Note

already established would confuse the state machine and prevent remote control
commands being sent to the source.

Issues Resolved in BlueLab v3.2

Severity

Description

B-5623

Minor

In the avrcp library, AvrcpConnectResponse no longer expects a bluetooth
address to be passed in.

B-5624

Minor

In the avrcp library, calling AvrcpConnect will now always return a confirmation
message if the request fails.

B-5625

Minor

The debug version of the connection library now panics if an L2CAP connect
response from the client contains invalid parameters.

B-5629

Minor

The avrcp library will now return confirmation messages for all API calls when the
attempt fails, and not just when they are a success.

B-5631

Minor

The examples/test_mp3decoder application has been added to the MP3 addon for BlueLab.

B-5639

Minor

PSR files have been added to the a2dp_source_dongle application to help
configure the application for operation as a USB or analogue audio device. (These are
selected automatically based on the project settings.)

B-5647

Minor

Reduced the sensitivity of the overflow check in stream_decode.asm in order to
prevent it firing incorrectly with a bursty audio stream.

B-5649

Major

Putting multiple file systems (or applications) into a single DFU file no longer causes

dfubuild to fail.
It is now possible for a VM application to specify directly the analogue and digital gain
settings for the internal CODEC on certain BlueCore devices.

B-5658

Minor

This can be done by setting bit 14 of the gain supplied to

CodecSetInput/OutputGain. If this is done, bits 0..3 are written to the digital
gain register and bits 4..6 are written to the analogue gain register.
For more recent BlueCore variants, the PIO lines used to wake the chip from deep
sleep can now be active low. This is controlled by PSKEY_PIO_WAKEUP_STATE.

B-5665

Minor

B-5670

Minor

B-5674

Minor

A font lookup library has been added for a particular project (support for this is not
present in the supplied firmware.)

B-5691

Minor

Tools and firmware have been modified to allow applications in the read-only filesystem
to use a full 64Kwords of code space as well as 24Kwords of constants. (Previously the
total of code and constant was limited to 64Kwords.)

B-5694

Minor

B-5695

Minor

The avrcp library function, AvcrpPassthrough, now correctly truncates vendor
data to 255 bytes.

B-5702

Medium

Modified the initial streaming state in stream_decode.asm so that it will start
playing audio sooner than before. It previously started in poorlink which meant it could
be several seconds before audio could be heard.

B-5703

Minor

A bug in the MP3 decoder has been fixed where reorder_spectrum wouldn't occur
if only the right channel was using short windows.

B-5706

Minor

The Kalimba DSP decoders now start in their gobble state rather than poorlink to avoid
an initial silence at the start of tracks.

B-5732

Minor

B-5748

Minor

The HfpGetBdaddr() function has now been removed from the hfp library API.
The address of the remote device can be obtained from the connection sink.

B-5749

Minor

The HFP_SLC_CONNECT_CFM message sent from the hfp library now includes the
sink for the SLC connection.

CS-110737-RNP1

AvrcpPassthrough in the avrcp library will now send subunit data to the remote

end correctly.

The PIOs used to drive the WM8731 are now configured during initialisation of the

codec library.

BlueFlashCmd now supports querying BlueCore for the chip version and flash size;
this is used to automatically identify suitable firmware.

© CSR plc 2006
This material is subject to CSR’s non-disclosure agreement.

Page 48 of 60

_äìÉi~Ä»=îPKS Software Release Note

ID

Issues Resolved in BlueLab v3.2

ID

B-5751

Severity

Minor

Description
When the mp3 decoder was requested to skip over an 'mp3 granule' (equivalent to half
an mp3 frame) it would actually consume a whole mp3 frame. This caused it to
consume data twice as quickly as expected during the 'poorlink' condition. To get
around this problem the 'poorlink percentage' in the past had to be half the value that
you'd imagine it should have been.
This bug has been corrected, i.e. the decoder correctly skips granules (half frames)
when requested.

Minor

On exiting the poorlink state, the Kalimba DSP decoders now start buffering rather than
entering the gobbling state.

B-5759

Minor

In order to be consistent with the other BlueLab libraries the avrcp library no longer
defines the AVRCP_DISCONNECT_CFM message. AVRCP_DISCONNECT_IND is
used instead.

B-5765

Minor

The avrcp library now returns the status avrcp_invalid_sink in confirmation
messages, if its functions are passed an invalid sink.

B-5766

Minor

The avrcp library now always returns the correct confirmation message for the API
function called.

B-5767

Minor

AvrcpSubUnitInfo in the avrcp library now sends the page data correctly.

B-5771

Minor

The avrcp library message, AVRCP_VENDORDEPENDENT_IND, now contains the
command type that was sent from the remote end.

B-5775

Minor

BlueLab upstream messages no longer contain pointers to data that their client must
free. All such data is now allocated as part of the message so it is destroyed together
with the message.

B-5780

Minor

The gavdp library now correctly rejects configurations which are not within the
reported capabilities.

B-5784

Minor

All state in the gavdp library is now stored in the task instance; previously global data
prevented multiple gavdp instances with differing client tasks.

B-5786

Minor

The gavdp library now correctly rejects configurations which are not within the
reported capabilities.

B-5788

Minor

The appquery helper utility has been extended to report the traps supported by a
firmware build; this is now used by the BlueLab makefiles to decide whether an
application should be placed in the read-only filesystem.

B-5791

Minor

A firmware bug has been fixed which prevented MESSAGE_ENERGY_CHANGED from
being delivered to a VM application.

B-5797

Minor

gcc now generates the correct labels for constant segment jump tables when optimising
switches on values it can calculate at compile time.

B-5799

Minor

Passing a null bluetooth address to AvrcpConnect in the avrcp library will now
cause a Panic in the debug build of the library.

B-5805

Minor

The sink is no longer passed in to many of the avrcp library API functions. It is stored
internally within the library.

B-5808

Minor

The profile instance pointer is now the first field in all messages returned from the
profile libraries.

B-5819

Minor

Some type definitions which were only relevant to BlueLab2 applications have been
eliminated from the (shared) vm_if.h header file.

B-5830

Minor

The VM version of xIDE now provides stack backtracing functionality. CallStack and
Backtrace variables windows have been added.

B-5863

Cosmetic

The pio_if.h header defined types which were used only for BlueLab2 and has
been removed.

B-5864

Minor

The PcmRoute and PcmRateAndRoute calls now support Kalimba DSP-mode.

B-5866

Minor

Attempting to step over a switch statement in a VM app no longer causes xIDE to lock
up in certain circumstances.

CS-110737-RNP1

© CSR plc 2006
This material is subject to CSR’s non-disclosure agreement.

Page 49 of 60

_äìÉi~Ä»=îPKS Software Release Note

B-5752

Issues Resolved in BlueLab v3.2

Severity

Description

B-5870

Minor

The default PIN code for all supplied applications has been changed from "4444" to
"8888"

B-5871

Major

The a2dp library now respects the local bitpool parameters set during initialisation.

B-5874

Major

gcc3.3 is now less likely to fail with an internal error while compiling calls to memcpy
involving pointers to pointers.

B-5890

Minor

A optimisation to the startup code for VM applications has saved one word of RAM in
the global variables.

B-5891

Minor

The hfp library now handles CL_RFCOMM_CONTROL_IND messages sent by the
connection library.

B-5893

Minor

The tools in BlueLab now support the read-only filesystem on 6-Mbit parts with suitable
firmware. (Previously 8-Mbit parts were required.)

B-5894

Minor

Step over/into now copes with larger switch statements when debugging VM
applications.

B-5898

Minor

As issue has been resolved which could cause warbling in the right channel when the
MP3 decoder was decoding from mono.

B-5901

Minor

Some variables that were in scope were not shown when debugging a VM application.
These variables now appear correctly.

B-5906

Minor

The combined headset application now checks its current state before attempting to
close the AVRCP connection.

B-5909

Minor

The six functions to set the input and output gains in the codec library, have been
replaced by two, where the channel that should be affected is now passed into the
function.

B-5910

Minor

CLASS_OF_DEVICE is no longer defined in the spp library. The type named
deviceType that was passed into SppInit has been renamed as
spp_device_type.

B-5914

Minor

The examples/test_headset application has been removed; it was incomplete
and will be replaced by a fully featured headset application in a later BlueLab release.

B-5915

Minor

The SBC and MP3 decoders are now better at correcting byte alignment when resynchronising.

B-5918

Minor

A debug variant of the avrcp library is now built by default when installing Bluelab.

B-5919

Minor

The combined headset application now sends a button press to the AG if connected as
HSP after an HFP connect has failed.

B-5920

Minor

The interface to the goep library has been substantially updated to make it more
understandable and more consistent with other BlueLab libraries.

B-5921

Minor

The AvrcpPassthrough and AvrcpVendorDependent interfaces have been
changed so that vendor data is passed as a Source and they handle it correctly.

B-5926

Minor

The hfp library API now complies with the BlueLab library coding standard.

B-5934

Minor

B-5945

Major

The a2dp library now uses kalimba_standard_messages.h for the kalimba
message types.

B-5946

Minor

The connection library API now complies with the BlueLab library coding standard.

B-5949

Major

BlueLab now probes over SPI to automatically identify which hardware you are using,
both BlueCore variant and flash size. As a result the 'hardware' project property in xIDE
has been removed.

B-5955

Minor

BlueLab now includes 'compact' firmware builds that support the read-only filesystem
(but not DFU) on 6-Mbit parts. These allow applications to exceed 32Kwords on 6-Mbit
parts.

spp library code to connect the rfcomm stream to the UART and to operate LEDs has

CS-110737-RNP1

been moved to the application. The connect confirmation status has now been changed
from type rfcomm_connect_status to spp_connect_status.

© CSR plc 2006
This material is subject to CSR’s non-disclosure agreement.

Page 50 of 60

_äìÉi~Ä»=îPKS Software Release Note

ID

Issues Resolved in BlueLab v3.2

Severity

Description

B-5967

Minor

AV streaming has been improved so that the start of a track will play straight away
rather than 200ms being lost. Also the poorlink state is now less likey to be entered and
so previous mute periods between audio tracks should not exist any more.

B-5972

Minor

The power table in the gavdp library now uses passive mode.

B-5978

Minor

The firmware now correctly handles overlapping calls to AdcRequest; previously
using the battery library to sample two sources could result in no readings being
produced.

B-5988

Minor

The gavdp library no longer panics during A2dpOpen if the signalling channel
establishment failed; checks have been added to make sure the signalling channel is
valid when looking for a stream endpoint.

B-6029

Minor

MESSAGE_SOURCE_EMPTY has been added.

B-6053

Minor

The interface to the ftpc library has been updated to make it more consistent with
other BlueLab libraries.

B-6059

Major

MESSAGE_STREAM_DISCONNECT is now sent to the task associated with the sink;
previously it was only sent there if no task was associated with the source.

B-6060

Minor

The gavdp library no longer rejects connections from devices that have their MTU set
to less than the L2CAP default MTU (672 bytes). The library will now accept a
connection from a remote device advertising any legal MTU.

B-6062

Minor

The combined headset application correctly updates its internal state when notified of
an incoming call while currently in an active call.

B-6068

Minor

Debounce settings can now be specified in .button files using debounce samples
delay .

B-6071

Minor

Low power table support has been added to the spp library.

B-6073

Minor

The av_headset_hfp application now uses the codec library.
The Connection library manages a list of trusted devices. The list is keyed by
Bluetooth address. A new API has been added to allow additional device attributes to
be stored.

B-6104

Minor

- ConnectionSmSetAttribute(..)
- ConnectionSmGetAttribute(..)
This API can be used to store and retrieve attribute data for a device keyed by
Bluetooth address.

B-6105

Minor

The default L2CAP configuration in the connection library now sets the local MTU to
895 bytes, the maximum we can support, rather than 672 bytes.

B-6107

Cosmetic

kalasm2 no longer prints out random characters instead of meaningful strings as part of
some warning and error messages.

B-6110

Major

The gavdp library now correctly updates its internal state if a suspend request is
rejected by the remote end. This was causing it to reject subsequent suspend requests
from the remote end.

B-6117

Minor

The Kalimba DSP decoder code has been adjusted to eliminate ticks which were
sometimes heard at the beginning of a track.

B-6123

Minor

When reading or writing data to a Kalimba DSP port, you can now force different
settings, for big/little endian and sign extension, than the defaults. To use different
settings from the defaults the port identifiers can now be defined with the following extra
definitions:

$cbuffer.FORCE_BIG_ENDIAN or $cbuffer.FORCE_LITTLE_ENDIAN
and

$cbuffer.FORCE_SIGN_EXTEND or $cbuffer.FORCE_NO_SIGN_EXTEND
B-6124

Major

CS-110737-RNP1

The connection library no longer leaks memory when its client attempts to connect
to an invalid Bluetooth address.

© CSR plc 2006
This material is subject to CSR’s non-disclosure agreement.

Page 51 of 60

_äìÉi~Ä»=îPKS Software Release Note

ID

Issues Resolved in BlueLab v3.2

ID

Severity

B-6129

Minor

B-6143

Minor

B-6152

Minor

A firmware change means that the sink value in DM_EX_SCO_DISCONNECT_IND
primitives is now correctly set, rather than being zero.

B-6153

Minor

The av_headset_hfp application now checks stream validity before routing SCO to
the PCM hardware.

B-6155

Minor

Freeing a pointer which points into the middle of an allocated region (rather than the
start of the region) now causes a VM panic.

B-6163

Minor

If the remote end initiates closing the media channel the gavdp library waits for 500ms
(thus allowing the remote end to disconnect the signalling channel) before initiating a
disconnect of the signalling channel, if it is still connected. Previously it would
disconnect the signalling channel immediately.

B-6165

Minor

The a2dp and gavdp libraries now provide a CloseAll function to clean up all
existing AV connections.

B-6177

Minor

The gavdp library no longer tries to use a signalling connection that doesn't exist.

B-6178

Minor

The gavdp library now does some additional checking on the result of a SinkClaim.

B-6179

Minor

The oppc library API has been updated as part of the changes to the goep API.

B-6188

Minor

Code has been added to prevent changing track, or playing of very short sound clips,
resulting in a short clip of the last sound being played.

B-6194

Minor

If the AG does not support an in-band ring tone but opens a SCO while sending RING
indications, the combined headset application will now play its own ring tone.

B-6198

Minor

A new 'Message' tab in xIDE traces messages passed to the tasks in the application,
both from other tasks and from the firmware.

B-6208

Minor

The a2dp and gavdp no longer contain a media_sink field in their CODEC settings
indication messages.

B-6210

Minor

The opps API has been updated to match the new goep API.

B-6214

Minor

An opp_server application has been added.

B-6217

Minor

A minor issue in the firmware has been resolved which could mean updates to local
variables placed at 0xFFF8 were ignored by xIDE.

B-6230

Minor

SinkIsValid and SourceIsValid library routines have been added.

B-6233

Minor

A debug variant of the spp library is now built by default when installing BlueLab.

B-6234

Minor

The opps library no longer assumes that vCard mime types will all be lower case.

B-6245

Minor

The hfp library now correctly hangs up the active call if a second call comes in and the
application issues an HfpTerminateCall request.

B-6259

Minor

gcc no longer allows bitfields to straddle word boundaries any more. Doing so
generated extra code and broke applications which made assumptions about structure
packing.

B-6275

Minor

An obex_server application has been added.

B-6276

Fatal

The gavdp library now correctly validates the service capabilities received in a get
capabilities response.

B-6283

Minor

The examples/oppc application has been added.

B-6284

Minor

DFU tools have been included with BlueLab in tools/dfu.

B-6286

Minor

The AG may optionally include an alphanumeric representation of the number sent in
the CLIP indication. If the hfp receives this it sends a single
HFP_CALLER_ID_NAME_IND message to the client containing this string.

B-6287

Minor

The Kalimba DSP message library has been updated to avoid corrupting the timer list
when the firmware took longer than expected to acknowledge a message.

The interface to the ftps library has been updated to make it more consistent with
other BlueLab libraries.

ConnectionSmDeleteAllAuthDevices(..) previously failed to remove all
devices from the paired device list.

© CSR plc 2006
This material is subject to CSR’s non-disclosure agreement.

Page 52 of 60

_äìÉi~Ä»=îPKS Software Release Note

CS-110737-RNP1

Description

Issues Resolved in BlueLab v3.2

ID

B-6330

Severity

Minor

Description
Any streams connected to the Kalimba DSP are now disconnected before a new
Kalimba DSP application is loaded by KalimbaLoad; previously the firmware could
believe that streams were still connected, despite the Kalimba DSP having been
restarted.
A warping operator has been added to the Kalimba DSP libraries allowing

stream_decode to maintain buffer levels at the good working level. This supports

B-6347

Minor

B-6375

Minor

B-6380

Minor

B-6386

Minor

The hfp and a2dp libraries now allow their client task to supply a service record to be
registered instead of the default service record for that profile.

B-6417

Minor

The hfp library now returns more specific error codes if the SLC attempt fails so its
client can differentiate between a connect fail due to page timeout and the remote
device not supporting the requested service.

B-6439

Minor

A connection_id field has been added to the CL_L2CAP_CONNECT_CFM
message sent by the connection library.

B-6447

Minor

source and sink having non perfect sampling frequencies and helps to conceals flaws in
encoders with poor buffer-level jitter control.
The connection library now waits for the client to read the
CL_L2CAP_DISCONNECT_IND message before acknowledging the disconnect.

PcmRateAndRoute to internal CODECs on kalimba will now rejects 48kHz for the

The Kalimba DSP profiler library no longer requires explicit calls to

profiler.register before the first call to profiler.start.
To be more consistent with other Kalimba DSP libraries the names of some constants
have been changed. For example:

B-6448

Minor

$codec.STREAM_ENCODER_IN_LEFT_BUFFER_FIELD
has been changed to:

$codec.stream_encode.IN_LEFT_BUFFER_FIELD
B-6451

Major

The Kalimba DSP loop registers are now reset during KalimbaLoad; previously they
were left alone. If, as a result of switching Kalimba DSP applications, this left them
pointing to the first instruction in a loop, the Kalimba DSP could branch to a random
address.

B-6483

Minor

The structures used to configure the profile library instance for the hfp and a2dp
libraries have been renamed to hfp_init_params and a2dp_init_params
respectively.

B-6503

Minor

The hfp library now ignores RING indications if the AG sends them before the SLC is
fully established. Both ends are forbidden (by the profiles) from sending any signalling
messages until the SLC has completed.

B-6505

Minor

Scripts to help Matlab users to inspect Kalimba DSP state (such as buffer levels) have
been added to the tools/matlab directory.

B-6510

Minor

A subtle bug in the gcc register allocator caused gcc to delete an instruction that was
necessary in some obscure circumstances.

B-6555

Minor

Improved interop of Bluestack by always exiting sniff mode or park mode before
opening a SCO or eSCO link. It was seen that certain phones would always reject a
SCO connection if the ACL was in sniff.

B-6597

Minor

The firmware implementation of StreamConnectDispose has been optimised
when applied to common case of region, file and audio sources.

B-6598

Minor

The av_headset_hfp application no longer attempts to configure the ADC to a rate
the hardware does not support.

B-6601

Minor

When connecting an Audio Source to the Kalimba DSP, garbage data was occasionally
sent. This has been fixed.

B-6631

Minor

At above maximum amplitude saturation now correctly occurs.

CS-110737-RNP1

© CSR plc 2006
This material is subject to CSR’s non-disclosure agreement.

Page 53 of 60

_äìÉi~Ä»=îPKS Software Release Note

ADCs since it is not supported by the hardware.

Issues Resolved in BlueLab v3.2

ID

Severity

Description

B-6641

Major

The MPEG-2 extended sample rates have been removed from the MP3 capabilities in
the a2dp library because these are not supported by the Kalimba DSP application.

B-6694

Major

Calls to StreamConnect with a SCO stream no longer fail if the SCO connection is
in the process of being closed by the baseband but the VM application has yet to be
informed.

B-6699

Minor

B-6901

Fatal

BlueFlash and BlueFlashCmd no longer report errors writing to sector 64 on BlueCore 3
when using certain flash devices.

B-6906

Fatal

The version of strncpy supplied as part of the BlueLab libraries could illegally access
memory beyond the bound given on the source string. This has been fixed.

B-6941

Major

xIDE no longer reports nonsense values for the contents of a service record when
logging a SDS_REGISTER_REQ in the BlueStack tab. (In unusual circumstance the
firmware could panic while logging such a primitive.)

B-6980

Major

The AVRCP library now leaves data in the source until a response has been sent;
previously it would hold the data in a dynamic block which caused problems with stacks
(such as the iPaq HX2415) which sent multiple AVRCP messages without waiting for an
acknowledgement.

B-6983

Major

A problem has been resolved which could, in unusual circumstances, lead to gcc3
generating incorrect code when switching on a variable and then referencing the
variable soon after the switch.

B-6996

Minor

The spp_dev_a application no longer looks for an exact class of device match during
an inquiry result.

B-7203

Major

If the connection library receives an L2CAP connect response and cannot find the
internally stored data for this connection it will now send a
CL_L2CAP_CONNECT_CFM message to the client indicating this rather than
panicking.

B-7217

Major

The hfp library now allows audio transfer when in the incoming and outgoing call
states.

B-7246

Minor

Reference documentation for the Kalimba DSP library code is now included and
accessible from xIDE's help panel.

B-7265

Minor

The CVSD filter is now available when using SCO streams.

B-7319

Major

The gavdp library could fail to attempt a role switch even when the device was
configured as an AV sink. This could result in degraded throughput and poor AV
performance and has been fixed.

B-7360

Minor

The hfp no longer leaks memory when an HfpSlcConnect() is issued with the
extra_indicators parameter set and the connect attempt fails.

B-7370

Minor

The hfp library has been updated to use a longer sniff interval.

B-7386

Minor

The gavdp library now cleans up its state properly if it attempts to open a transport
channel and this attempt fails.

A memory leak when connecting to an invalid Bluetooth address has been fixed in the

goep library.

B-7388

Major

B-7402

Minor

The hfp library now correctly parses +CCWA indications sent from the AG with fewer
parameters than required by the HFP specification.

B-7405

Minor

The avrcp library has been updated so it can be configured to support either the
target or the controller role. The correct UUID is inserted into the service record
registered by the avrcp library depending on the role selected by the client.

B-7433

Minor

This release of firmware adds support for slave mode I2S audio.

Minor

Explicit support for MBM29SL800BE was missing from BlueFlash and BlueFlashCmd. It
has been added.

B-7439

CS-110737-RNP1

is initiating the AV connection. Previously it was not expecting that message in that
state and would panic.

© CSR plc 2006
This material is subject to CSR’s non-disclosure agreement.

Page 54 of 60

_äìÉi~Ä»=îPKS Software Release Note

The av source dongle application now correctly handles an

A2DP_CODEC_SETTINGS_IND message from the a2dp library if the remote device

Issues Resolved in BlueLab v3.2

ID

Severity

B-7638

Minor

Description
A demonstration version of the CVC DSP code has been added to the

av_headset_hfp application (this can be enabled by defining INCLUDE_CVC in
the project properties.)

Major

The EnergyEstimationOn/Off functions no longer fail if the SCO sink is
connected to a source.

KEX-20

Minor

A spurious read has been eliminated from the gargle filter. This caused the audio to
sound gargled even when the filter was off.

KEX-23

Minor

A tone generation example has been added, making use of the Kalimba DSP to
generate the tones, and the VM to parse instructions typed by the user into an interface
such as HyperTerminal.

KEX-28

Minor

BlueLab3.2 kalimba examples have been updated to align with the current naming
convention. To that end modules are now named using the following convention:
$M.modName not $M_modName.

KEX-29

Minor

A demonstration of the mix operator has been added to the test_sbc_loopback
example in BlueLab.

M-399

Minor

Kalimba breakpoints are no longer lost when the Kalimba application is reloaded by the
vm.

M-412

Minor

Debug output in xIDE is no longer slower with the BlueCore host transport set to none,
and in general performance and robustness of the SPI transport has been improved.

M-427

Cosmetic

M-442

Minor

The accuracy of timestamps in the xIDE primitive trace has been improved.

M-571

Minor

If the pre-processor symbols used in a Kalimba DSP project are changed, xIDE will now
force a rebuild of the assembler source code. Previously, a manual 'clean' step was
required to force this to happen.

M-577

Cosmetic

M-595

Major

Expanding certain items in the variable widget (especially pointers) could cause xIDE to
crash. This no longer occurs.

M-596

Minor

xIDE can now parse debug information for code with variables declared as `volatile'.

M-599

Minor

Certain variables were displayed as ???? in the xIDE debugger. These variables are
now read correctly.

M-690

Major

xIDE should now correctly handle setting breakpoints in Kalimba DSP source files.
Previously it could refuse to set them if the file was opened from the File menu, rather
than from the project file list.

The debug transport for xIDE can no longer be 'unset' by dismissing the debug transport
dialog without making a selection; which could prevent the debugger making contact
with BlueCore.

The version of BlueLab being used in now displayed in the title bar of the main xIDE
window.

Table F.1: Issues Resolved in BlueLab v3.2

CS-110737-RNP1

© CSR plc 2006
This material is subject to CSR’s non-disclosure agreement.

Page 55 of 60

_äìÉi~Ä»=îPKS Software Release Note

B-7693

Issues Resolved in BlueLab v3.1

Appendix G

Issues Resolved in BlueLab v3.1

The following issues were fixed in the BlueLab v3.1 release.
ID

Severity

B-1730

Minor

B-3997

Minor

ConnectionReadRemoteName has been implemented in the connection library. (It

B-4158

Minor

The (unused) a2dp_discover call has been removed from the a2dp library.

B-4335

Major

The hfp profile library will silently ignore any AT+VGS commands which come in faster
than they can be handled. This is to avoid memory exhaustion.

B-4379

Minor

Server side functionality has been added to the GOEP library.

B-4404

Minor

The av_headset and av_headset_hfp applications now attempt to close down
the AV connection gracefully when powered down.

B-4658

Minor

The avrcp library now provides a power table to the connection library. It uses the
priority passed to AvrcpInit by the application.

B-4677

Major

An issue in the av_headset_hfp application where audio playback would not
resume after the Source initiated an AVDTP_SUSPEND followed by AVDTP_START
has been resolved.

B-4760

Minor

B-4769

Fatal

Messaging from the Kalimba DSP to the VM application does not work with the
firmware shipped with BlueLab 3.0-release. This has been resolved in subsequent
firmware builds.

B-4771

Fatal

gcc3 has been updated to prevent it from generating incorrect assembler code for shifts
in certain code fragments.

B-4811

Fatal

kalasm2 no longer writes truncated .klib files on certain source files.

B-4813

Cosmetic

B-4841

Minor

The goep and ftpc libraries have been extended to enable use of the optional type
header.

B-4848

Major

Selection and loading of the Kalimba CODEC has been moved into the a2dp library
(previously it was performed by the client applications.)

B-4849

Major

The a2dp library now performs capability negotiation for the CODECs and notifies the
application of the result.

B-4895

Minor

The a2dp and gavdp libraries now refers internally to the AV stream using sinks
rather than the SEID. The SEID is still passed up to the application for informational
purposes.

B-4916

Major

The a2dp library now handles SEP registration. The application only needs to specify
the type(s) (SBC,MP3, ...) of SEP they wish to register.

B-4918

Minor

The a2dp_source_dongle application can now be built so that it accepts an
analogue input using the new codec library, or enumerates as USB speakers.

B-4973

Minor

A generic codec library for BleCore3 Multimedia has been added which currently
supports both the internal CODECs and an external Wolfson WM8731.

B-5005

Minor

The connection library now informs clients that an ACL connection has been
opened by sending CL_DM_ACL_OPENED_IND.

B-5008

Minor

The debug variant of the connection library now checks the status field of primitives
it would otherwise ignore and panics if the status field is bad.

B-5010

Minor

Support for changing the local name has been added to the connection library.

The strcmp and memcmp functions in the C library now correctly use unsigned char
according to the C standard, rather than plain char.
truncates names longer than 31 characters.)

kalimba_standard_messages.h header has been added listing various

messages passed between the Kalimba DSP code and the supplied VM applications.

xIDE no longer displays the (unused) BH and BL registers which were needed for gcc2.

© CSR plc 2006
This material is subject to CSR’s non-disclosure agreement.

Page 56 of 60

_äìÉi~Ä»=îPKS Software Release Note

CS-110737-RNP1

Description

Issues Resolved in BlueLab v3.1

Severity

Description

B-5039

Minor

The GOEP library now sends an explicit delete request to its application when a remote
client wishes to delete an object.

B-5059

Major

The hfp library now unconditionally sends volume indications to the client when in
headset mode. Previously it incorrectly checked the local supported features but those
are relevant only to the hands-free profile.

B-5069

Minor

Firmware for BlueCore4-external is now included with BlueLab.

B-5084

Major

A possible infinite loop in gavdpHandleTransportChannelClosed in the
gavdp library has been eliminated.

B-5098

Minor

The gavdp library no longer relies on a (30 second) timeout to detect failed
connections.

B-5111

Minor

A FileParent function has been added to find the directory containing an item in the
read-only file system.

B-5120

Minor

The buttonparse tool has been extended to allow the creation of messages for
double key presses.

B-5131

Minor

The gavdp library now returns an error message to the client if GavdpClose is
attempted while in the wrong state. The close operation itself is not attempted.

B-5138

Major

The hfp library now correctly frees the memory containing the results of an SDP
search.

B-5171

Major

The spp and goep libraries now correctly free the memory containing the results of an
SDP search.

B-5181

Minor

The TGAVDP100 timeout in the gavdp library has been increased to avoid signalling
timeouts in cases where the packets are delayed due to heavy Bluetooth usage such as
a scatternet with both a SCO connection and AV streaming.

B-5188

Minor

The test_headset application now correctly sets up PSKEY_FIXED_PIN.

B-5192

Minor

The PcmRate and PcmRoute calls are deprecated; the supplied example
applications now use the combined PcmRateAndRoute call.

B-5193

Minor

The test_headset application now tries to use the internal CODEC and, if that
doesn’t exist, an external CODEC. As a result it will work on BlueCore variants with
internal and external CODECs.

B-5194

Minor

Both av_headset and av_headset_hfp now panic if an attempt to register an
SEP fails during startup. Previously they would just fail mysteriously if, say, the required
Kalimba DSP application was not present on-chip.

B-5253

Fatal

gcc3 has been updated to eliminate a possible fatal failure during the reload phase of a
'movhi' instruction.

B-5297

Major

The linker 'ld' has been updated to eliminate warnings and a possibly incorrect
stackusage calculation for programs containing very large call instructions.

B-5409

Minor

New StreamConnectAndDispose function added.

M-387

Major

xIDE should now correctly display the source code for kalimba libraries.

M-530

Minor

PSKEY_VM_DISABLE can no longer be accidentally left set to 2 (debug) if xIDE
terminates abnormally; the VM will be left in the state it was before debugging.
Table G.1: Issues Resolved in BlueLab v3.1

CS-110737-RNP1

© CSR plc 2006
This material is subject to CSR’s non-disclosure agreement.

Page 57 of 60

_äìÉi~Ä»=îPKS Software Release Note

ID

Terms and Definitions

Terms and Definitions
ADC

Analogue to Digital Converter (the analogue inputs on BlueCore)

AG

Audio Gateway

AT

Attention (modem command prefix)

API

Application Programming Interface

AVRCP

Audio/Video Remote Control Profile

BCCMD

BlueCore Command
BlueCore Serial Protocol

BlueCore™

Group term for CSR’s range of Bluetooth wireless technology chips

BlueLab™

CSR’s development toolset for building applications to run in the firmware’s VM

®

Bluetooth

Set of technologies providing audio and data transfer over short-range radio connections

BlueStack™

Mezoe’s implementation of a Bluetooth protocol stack (up to RFCOMM level)

BlueSuite™

Family of software utilities for Bluetooth evaluation and development (supplied with CSR
development systems Casira, MicroSira, CompactSira).

Casira™

CSR’s main Bluetooth evaluation hardware

CODEC

COder DECoder

CPU

Central Processing Unit

CSR

Cambridge Silicon Radio

cVc

Clear Voice3 Capture

DM

Device Manager

DTMF

Dual Tone Multi-frequency

DSP

Digital Signal Processor

EAG

Embedded Audio Gateway

FTPC

File Transport Profile Client

FTPS

File Transport Profile Server

GAVDP

Generic Audio/Video Distribution Profile

GCC

GNU Compiler Collection

GOEP

Generic Object Exchange Profile

H4

UART-based HCI transport, described in section of H4of v1.0b of Bluetooth Specification

HCI

Host Controller Interface

HFP

Handsfree Profile

HID

Human Interface Device

OBEX

Object EXchange Protocol

OPPC

Object Push Protocol Client

OPPS

Object Push Protocol Server

PABP

Phonebook Access Profile

Persistent Store

Storage of BlueCore’s configuration values in non-volatile memory

PIO

Parallel Input Output; the parallel port on BlueCore

PM

Program Memory

RAM

Random Access Memory

RFCOMM

Serial cable emulation protocol (element of Bluetooth)

SBC

Sub-Band Coding

SCO

Synchronous Connection Oriented link

SDK

Software Development Kit

CS-110737-RNP1

© CSR plc 2006
This material is subject to CSR’s non-disclosure agreement.

Page 58 of 60

_äìÉi~Ä»=îPKS Software Release Note

BCSP

Terms and Definitions

Service Discovery Protocol

SLC

Subscriber Loop Carrier

SIG

Special Interest Group (Bluetooth SIG controls the Bluetooth specifications)

SPI

Serial Peripheral Interface

SPP

Serial Port Profile

TCP

Transmission Control Protocol

UART

Universal Asynchronous Receiver Transmitter

UDP

User Datagram Protocol

USB

Universal Serial Bus

VM

Virtual Machine; environment in the BlueCore firmware for running application-specific
code produced with BlueLab

xIDE

BlueLab’s Integrated Development Environment

CS-110737-RNP1

© CSR plc 2006
This material is subject to CSR’s non-disclosure agreement.

_äìÉi~Ä»=îPKS Software Release Note

SDP

Page 59 of 60

Document History

Document History
Revision

Date

ISSUE 1

05 DEC 06

Reason for Change
Original publication of this document. (CSR reference: CS-110737-RNP1)

BlueLab v3.6 Software Release Note
CS-110737-RNP1
December 2006

®
Unless otherwise stated, words and logos marked with ™ or are trademarks registered or owned by Cambridge
®
Silicon Radio Limited or its affiliates. Bluetooth and the Bluetooth logos are trademarks owned by Bluetooth SIG,
Inc. and licensed to CSR. Other products, services and names used in this document may have been
trademarked by their respective owners.

The publication of this information does not imply that any license is granted under any patent or other rights
owned by Cambridge Silicon Radio Limited.
CSR reserves the right to make technical changes to its products as part of its development programme.
While every care has been taken to ensure the accuracy of the contents of this document, CSR cannot accept
responsibility for any errors.
CSR’s products are not authorised for use in life-support or safety-critical applications.

CS-110737-RNP1

© CSR plc 2006
This material is subject to CSR’s non-disclosure agreement.

Page 60 of 60

_äìÉi~Ä»=îPKS Software Release Note

_äìÉi~Ä=



Source Exif Data:
File Type                       : PDF
File Type Extension             : pdf
MIME Type                       : application/pdf
PDF Version                     : 1.4
Linearized                      : No
Tagged PDF                      : Yes
Page Mode                       : UseOutlines
XMP Toolkit                     : 3.1-701
Producer                        : Acrobat Distiller 7.0 (Windows)
Company                         : CSR
Source Modified                 : D:20061208103026
Creator Tool                    : Acrobat PDFMaker 7.0 for Word
Modify Date                     : 2006:12:08 10:39:19Z
Create Date                     : 2006:12:08 10:33:13Z
Metadata Date                   : 2006:12:08 10:39:19Z
Document ID                     : uuid:c76b98c1-326d-4773-b9b9-fedceef519e4
Instance ID                     : uuid:8be1dad0-0f10-403e-b9cf-3b2d1dc794df
Version ID                      : 202
Format                          : application/pdf
Title                           : Technical Communications Style Guidelines FEB02
Creator                         : sm01
Subject                         : 
Headline                        : 
Page Count                      : 60
Page Layout                     : SinglePage
Author                          : sm01
EXIF Metadata provided by EXIF.tools

Navigation menu