Bee项目文档规范 RTL8762C SDK User Guide EN

User Manual:

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

DownloadBee项目文档规范 RTL8762C SDK User Guide EN
Open PDF In BrowserView PDF
ek

alt

Re

RTL8762C SDK User Guide

Co
2018/09/07

al
nti

de

nfi
V1.1

RTL8762C SDK User Guide

Revision History
Date

Version

Comments

Author

Reviewer

Lory

Rui

2017/12/07

V1.0

First Release version

2018/09/07

V1.1

Update 8 and 9.1

ek

alt

Re
Co
al
nti

de

nfi
Copyright 2018Realtek Semiconductor Corporation.
All Rights Reserved.

2

RTL8762C SDK User Guide

Contents
Revision History ................................................................................................................................................ 2
Figure List ......................................................................................................................................................... 6
Table List ........................................................................................................................................................... 7
1

Overview ................................................................................................................................................... 8

2

Getting started ........................................................................................................................................... 9
2.1

Prerequisites ....................................................................................................................................... 9
Keil ............................................................................................................................................. 9

2.1.2

J-Link .......................................................................................................................................... 9

2.1.3

SDK .......................................................................................................................................... 10

2.1.4

EVB Kit .................................................................................................................................... 10

alt

Re

2.1.1

Environment Setup ........................................................................................................................... 10

2.3

EVB Setup ........................................................................................................................................ 11

2.4

IDE Setup ......................................................................................................................................... 11

ek

2.2

Keil Project ............................................................................................................................... 11

2.4.2

Keil Settings ............................................................................................................................. 12

Co

2.4.1

nfi

3

Hardware Architecture ............................................................................................................................ 16

4

Software Architecture .............................................................................................................................. 17

de

System Architecture ......................................................................................................................... 17

4.2

Operating System ............................................................................................................................. 17

4.3

OS Interfaces .................................................................................................................................... 18

4.4

Task and Priority .............................................................................................................................. 19

al
nti

5

4.1

4.4.1

Task .......................................................................................................................................... 19

4.4.2

Priority ...................................................................................................................................... 21

Application .............................................................................................................................................. 22
5.1

SDK Directory.................................................................................................................................. 22

5.2

Sample Projects ................................................................................................................................ 23

5.3

Application Process Flow................................................................................................................. 25

5.4

MSG and Event Handling Flow ....................................................................................................... 26
Copyright 2018Realtek Semiconductor Corporation.
All Rights Reserved.

3

RTL8762C SDK User Guide

5.5

6

5.5.1

Message Format ........................................................................................................................ 27

5.5.2

Message Type Definition.......................................................................................................... 27

5.5.3

Message Subtype Definition ..................................................................................................... 28

5.5.4

Define User Message ................................................................................................................ 28

5.6

Pin Settings....................................................................................................................................... 28

5.7

DLPS Settings .................................................................................................................................. 28

Memory ................................................................................................................................................... 30
Memory Map .................................................................................................................................... 30

6.2

ROM ................................................................................................................................................. 30

6.3

RAM ................................................................................................................................................. 30

Re

6.1

Data Ram .................................................................................................................................. 31

6.3.2

Buffer Ram ............................................................................................................................... 31

ek

alt

6.3.1

6.4

Cache ................................................................................................................................................ 32

6.5

Flash ................................................................................................................................................. 32

Co

6.5.1

Flash APIs................................................................................................................................. 33

6.5.2

FTL ........................................................................................................................................... 33

nfi

6.6

eFuse ................................................................................................................................................ 34

Interrupt ................................................................................................................................................... 35

de

7

IO MSG ............................................................................................................................................ 27

Nested Vectored Interrupt Controller (NVIC) ................................................................................. 35

7.2

Interrupt Vector Table ...................................................................................................................... 35

7.3

Interrupt Priority............................................................................................................................... 39

al
nti

7.1

8

Power Management ................................................................................................................................. 40

9

Download ................................................................................................................................................ 42
9.1

About Images ................................................................................................................................... 42

9.2

Application Image Processing Tool ................................................................................................. 42

9.2.1

fromelf ...................................................................................................................................... 42

9.2.2

CheckSum_Gen ........................................................................................................................ 42

9.2.3

md5 ........................................................................................................................................... 44

9.3

Downloading Pattern ........................................................................................................................ 44
Copyright 2018Realtek Semiconductor Corporation.
All Rights Reserved.

4

RTL8762C SDK User Guide

10 Debug ...................................................................................................................................................... 44
10.1

Log Mechanism ................................................................................................................................ 45

10.1.1

Debug analyzer ......................................................................................................................... 45

10.1.2

Basic Interface for Log Printing ............................................................................................... 47

10.1.3

Wrapped Interfaces for Log Printing ........................................................................................ 47

10.1.4

Auxiliary Interfaces .................................................................................................................. 48

10.1.5

Log Print Example .................................................................................................................... 48

10.1.6

Log Control Interfaces .............................................................................................................. 49

10.1.7

DBG_DIRECT ......................................................................................................................... 51

10.2

Debug with SWD ............................................................................................................................. 51

Re

Using SWD Debug Interface .................................................................................................... 52

10.2.2

Using Trace Port Interface DWT .............................................................................................. 53

ek

alt

10.2.1

Co
al
nti

de

nfi
Copyright 2018Realtek Semiconductor Corporation.
All Rights Reserved.

5

RTL8762C SDK User Guide

Figure List
Figure 10-1 Main Interface of Debug Analyzer ...................................................................................................... 45
Figure 10-2 Debug Analyzer Setting Page .............................................................................................................. 46

ek

alt

Re
Co
al
nti

de

nfi
Copyright 2018Realtek Semiconductor Corporation.
All Rights Reserved.

6

RTL8762C SDK User Guide

Table List
Table 5-1 APP Intialization ...................................................................................................................................... 25
Table 7-1 Interrupt Vector Table .............................................................................................................................. 35
Table 7-2 Timer 4~7 ISR ......................................................................................................................................... 37
Table 7-3 Peripheral ISR ......................................................................................................................................... 37
Table 7-4 GPIO Group3 ISR ................................................................................................................................... 38
Table 7-5 GPIO Group2 ISR ................................................................................................................................... 38
Table 7-6 GPIO Group1 ISR ................................................................................................................................... 38
Table 7-7 GPIO Group0 ISR ................................................................................................................................... 39
Table 7-8 Interrupt Priority ...................................................................................................................................... 39
Table 9-1 Downloading Patterns Available for Images ........................................................................................... 44

Re

Table 10-1 Debug Level .......................................................................................................................................... 47

ek

alt
Co
al
nti

de

nfi
Copyright 2018Realtek Semiconductor Corporation.
All Rights Reserved.

7

RTL8762C SDK User Guide

1

Overview

This document shows you how to develop Bluetooth Low Energy applications using RTL8762C Software
Development Kit (SDK).

ek

alt

Re
Co
al
nti

de

nfi
Copyright 2018Realtek Semiconductor Corporation.
All Rights Reserved.

8

RTL8762C SDK User Guide

2

Getting started

2.1 Prerequisites
The following software and hardware will be needed during the development:
1. Keil MDK-ARM Lite V5 or later
2. J-Link Software v5.02d or later
3. RTL8762C SDK
4. EVB Kit

Re

2.1.1 Keil

All applications in the SDK can be compiled and used with Keil Microcontroller Development Kit(MDK). So

alt

before starting software development, Keil should be obtained and installed correctly by users themselves, please
visit www.keil.com for more information.

ek

Tool chain version as below is used by Realtek, and this version or higher is suggested to be used to avoid any

Co

compatible issue between the ROM executable programs and user applications.

al
nti

de

nfi
Figure 2-1 keil

2.1.2 J-Link
J-Link is another prerequisite if more comprehensive debug method is desired besides the logging mechanism. For
installing the SEGGER J-Link software, visit www.segger.com to download related software and documentation.
Copyright 2018Realtek Semiconductor Corporation.
All Rights Reserved.

9

RTL8762C SDK User Guide

The driver should be correctly installed for the device to use the J-Link debugger with Keil MDK.

2.1.3 SDK
The SDK includes sample projects, documentation, and essential tools.

2.1.4 EVB Kit
The EVB is designed to contain necessary hardware to evaluate, develop and debug user applications for
RTL8762C.

2.2 Environment Setup

Re

Figure 2-2 shows the relationship between the hardware part and software component. The application developed

ek

alt

with Keil could be downloaded into RTL8762C EVB via J-Link, and debug via SWD interface.

Co
al
nti

de

nfi
Copyright 2018Realtek Semiconductor Corporation.
All Rights Reserved.

10

RTL8762C SDK User Guide

RTL8762C SDK

ek

alt

Re
Co
de

nfi
Figure 2-2 Enviroment Setup

al
nti

2.3 EVB Setup

EVB kits have a motherboard and one or more RTL8762C daughter-boards. Refer to RTL8762C Evaluation Board
User Guide for more details.

2.4 IDE Setup
2.4.1 Keil Project
Generally it is not recommended to create a new project for development, better to open an existing demo project
and add developer's own function codes to it.
Copyright 2018Realtek Semiconductor Corporation.
All Rights Reserved.

11

RTL8762C SDK User Guide

If Keil V5 or later version has been installed, taking pxp project for example, the project will be located at
bee2_sdk_ xxxx \board\evb\pxp, as is shown in Figure 2-3.

alt

Re

2.4.2 Keil Settings

Figure 2-3 Keil Project

For details on settings of Debugger and Flash Download Algorithm in Keil, refer to section “Debugger Adapter

ek

User's Guides - J-Link/J-Trace User's Guide”. A brief description for it is given below.

Co

1. Copy RTL876x_SPI_FLASH.FLM and RTL876x_LOG_TRACE.FLM at sdk\tool\flash to Keil installation
directory: Keil_installed_dir\ ARM\Flash\ as illustrated below:

al
nti

de

nfi
Figure 2-4 Keil Flash Algo

2. Click

in toolbar, or navigate to Project > Options for Target ... in the menu, and then click Debug Tab

page. Select J-LINK/J-TRACE Cortex, and then click on “Settings”:

Copyright 2018Realtek Semiconductor Corporation.
All Rights Reserved.

12

RTL8762C SDK User Guide

ek

alt

Re
Figure 2-5 Keil Setting

3. Select SW for J-Link Port. If hardware is connected properly, CPU will be recognized in SW Device list.

Co
al
nti

de

nfi
Figure 2-6 Keil Debugging Settings

4. Click “Flash Download” page to delete original Programming Algorithm (if any), and then click “Add”

Copyright 2018Realtek Semiconductor Corporation.
All Rights Reserved.

13

RTL8762C SDK User Guide

to add RTL8763Bx_FLASH_8MB.FLM and RTL876x_LOG_TRACE_16MB. Modify the start address of
“RAM for Algorithm” to 0x00200000 and size to 0x4000.

ek

alt

Re
Co

Figure 2-7 Flash Algo Applied

nfi

in Keil. After fixing compiling and link error if any, user

de

5. Compile the project by clicking “Make” icon

application could be downloaded into RTL8762C for further verification and debug.

icon

al
nti

6. If flash algorithm has been successfully set up, download option in Keil could be used by clicking “Load”
. During download procedure, no error message is supposed to happen. After application image has

been download successfully to the RTL8762C, you can reset RTL8762C to run your application. And in
debug analyzer tool, you can check whether application run as expected by log messages.

Copyright 2018Realtek Semiconductor Corporation.
All Rights Reserved.

14

RTL8762C SDK User Guide

Figure 2-8 Compile And Run

7.

J-Link can be used to debug and trace applications on RTL8762C by clicking “Debug” icon

.

NOTE: If DLPS mode is enabled, once the system entering DLPS mode, debugging cannot be

development.

Re

performed. So DLPS should be disabled when debugging using Keil Debugger in early stage of

Enable: lps_mode_set (LPM_DLPS_MODE)

alt

Disable: lps_mode_set (LPM_ACTIVE_MODE)

ek
Co
al
nti

de

nfi
Copyright 2018Realtek Semiconductor Corporation.
All Rights Reserved.

15

RTL8762C SDK User Guide

3 Hardware Architecture
Hardware block of RTL8762C is illustrated in Figure 3-1.


Rich peripherals



Flexible RAM configuration



Power Management Unit



Clock Management Unit



BLE module

RTL8762C

Switching
regulator

OCP Bus

Co

RFIO

APB

IR RC

IO PINMUX

UART x2

keyscan

I2C x2

SPI x2

al
nti

Low power
comparator

de

Log UART

Timers

GPIOs

32kHz
Crystal OSC

AUXADC

MIC
Bias

RF
tranceiver

LE

nfi

APB
40MHz
Crystal OSC

PGA+SDM_
ADC

32K_XO
32K_XI

Modem

Retention
RAM

VD12_PA
VD12_RTX
VD12_SYN

MIC_BIAS

ROM
RAM

VDIGI

XO
XI

SPI flash
controller

ARM
CM4

ek

VDDCORE

32kHz RC
OSC

alt

LX

PMU

Re

VBAT
*VDDIO
*HVD

Pm_n
m=0,1..4
n=0,1..7

*only in RTL8762CKF
Figure 3-1 RTL8762C Hardware Block

Copyright 2018Realtek Semiconductor Corporation.
All Rights Reserved.

16

RTL8762C SDK User Guide

4

Software Architecture

4.1 System Architecture
As shown in Figure 4-1, software architecture consists of several major components:
•GAP : Abstraction layer which user application communicates with BLE stack. Details information referred to
GAP Interfaces User Manual;
•Platform : Includes OTA, flash, ftl and etc;
•IO Drivers : Provides APIs for user application to interface with RTL8762C on-board peripherals without
accessing registers;
•OSIF: abstraction of real time OS interfaces for user application;

Re

Application

FreeRTOS

Platform
features

Peripherals

3rd Party Library

Bluetooth LE Stack

al
nti

de

ARM Cortex-M4

GAP

Peripheral
driver

nfi

CMSIS-Core

Hardware Modules

LE Profiles/Serivices

Co

ek

alt
OSIF

Bluetooth BB, BF

Realtek
Implemented

Vendor
Implemented

Figure 4-1 RTL8762C Software Architecture

4.2 Operating System
FreeRTOS V8.2 is used in RTL8762C, it is integrated in RTL8762C ROM code, and consists of the following
Copyright 2018Realtek Semiconductor Corporation.
All Rights Reserved.

17

RTL8762C SDK User Guide

components:
1. Task Management
2. Queue Management
3. Interrupt Management
4. Resource Management
5. Memory Management
6. Time Management

4.3 OS Interfaces
OSIF is implemented for RealBlueTM project. It is quite possible to update the specific RTOS version, and even to

Re

use a different RTOS on RealBlueTM project, so all the incompatible issues related to the specific RTOS interfaces
can be cleared if the OSIF layer is presented.

alt

As depicted by Figure 4-2, the OSIF layer aims to provide a consistent and uniform RTOS API set by wrapping

ek

the specific RTOS interfaces. Other software components that use the OSIF will be portable along with evolution
of the RealBlueTM project. Vendors can also provide their own RTOS implementation inside OSIF layer, but
without any modifications from upper layer software components.

Co

So, it is strongly recommended to use OSIF API in software development instead of accessing the specific RTOS

al
nti

de

nfi

interfaces.

Copyright 2018Realtek Semiconductor Corporation.
All Rights Reserved.

18

RTL8762C SDK User Guide

alt

Re
Figure 4-2 OSIF Overview

ek
nfi

4.4.1 Task

Co

4.4 Task and Priority

al
nti

de

As is shown in Figure 4-3, five tasks have been created for user application:

Copyright 2018Realtek Semiconductor Corporation.
All Rights Reserved.

19

RTL8762C SDK User Guide

ek

alt

Re
Co
nfi

Figure 4-3 RTL8762C Tasks

de

Description

timer

implement software timer required by FreeRTOS

4

lower stack

implement BT stack protocols below HCI

4

upper stack

implement BT stack protocols above HCI

3

app

handles user application requirement and interacts with stack

1

Idle

runs background tasks including DLPS

0

al
nti

Task

Priority

Note: multiple app tasks can be created and memory resource will be then allocated
Idle task and timer task are provided by FreeRTOS.
Tasks have been configured as preemptive based on its priority.

Copyright 2018Realtek Semiconductor Corporation.
All Rights Reserved.

20

RTL8762C SDK User Guide

Additionally, hardware interrupt service routines(ISR) are implemented by vendor as well.

4.4.2 Priority
Tasks are performed in four priorities:
Priority SW Timer = Priority lower stack > Priority upper stack > Priority app> Priority Idle.
Task Priorities
SW Timer

LowerStack

Upper Stack

Re

Application Lower

ek

alt
Idle

Co

al
nti

de

nfi

Figure 4-4 Task Priority

Copyright 2018Realtek Semiconductor Corporation.
All Rights Reserved.

21

RTL8762C SDK User Guide

5

Application
5.1 SDK Directory

SDK directory is as show below.
sdk

bin

doc

board

evb

Sample project

Re
inc

app

alt

bluetooth

ek

os

peripheral

Co

stack

al
nti

de

nfi

src

platform

tool

Figure 5-1 SDK Directory

Directory

Description

board

sample Keil project files which have been already well-configured to start with

doc

SDK documents

inc

header files which provide API definitions export from ROM

bin

binary files for user application to link

Copyright 2018Realtek Semiconductor Corporation.
All Rights Reserved.

22

RTL8762C SDK User Guide

src

source files for sample applications

tool

host tools set for add-on features

5.2 Sample Projects
To help create user application, many sample projects in SDK have been created to start with, such as pxp and
some ble related demo sample projects. Through studying sample projects, customers can easily get familar with
SDK. All sample projects have been configured and memory layout in scatter file is also modified to comply with
RTL8762C SOC.

Taking pxp application as an example below, it shows how to start developing the customized user application by

ek

alt

Re

the sample project. The snapshots are captured with current SDK, and may subject to change due to SDK upgrade.

Co
de

nfi
Figure 5-2 PXP Sample Project

al
nti

Source files in PXP project are currently categorized into several groups as below:
•

Include directory is used to export the UUID which is mandatory for any application built for RTL8762C. No
modification is permitted by any 3rd party.

•

Lib directory includes all binary symbol files that user application is built on.

•

CMSIS directory is used for boot up code.

•

APP directory includes the pxp user application implementation.

•

Profile directory includes BLE profiles or services used by the sample application.

•

Peripheral directory contains all the driver and module code that the pxp project has used.

The common files in sample applications are explained as below:

File name

Description
Copyright 2018Realtek Semiconductor Corporation.
All Rights Reserved.

23

RTL8762C SDK User Guide

rom_uuid.h

UUID header files provided by SDK to identify the ROM, no change needed

ROM.lib

ROM symbol library file, used by user application to link any ROM symbols

gap_utils.lib

Gap library file to implement latest BLE functions

startup_rtl8762c.s

Assembly file for RTL8762C application start-up

system_rtl8762c.c

C file for RTL8762C application start-up

board.h

Header file to configure pin and DLPS settings

flash_map.h

Flash layout file which is generated by FlashMapGenerateTool

mem_config.h

Memory Configuration file

The sample project may upgrade together with the SDK, and to better utilize the upgraded sample code, newly

Re

added user code is suggested to being organized and modularized.

alt

More detail information on each sample project could be found in its user manual.

ek
Co
al
nti

de

nfi
Copyright 2018Realtek Semiconductor Corporation.
All Rights Reserved.

24

RTL8762C SDK User Guide

5.3 Application Process Flow
Boot Code

APP Task Entry

Board Init

APP Queue Init

Gap Init

Start Stack

Profile Init

Driver Init

Re

Realtek Handlers

While(true)

alt

Power Manager Init

Vendor Handlers

No

ek

Is there
any messages for
APP?

SW Timer Init

Co
Yes

Task init

BT Stack Handler

de

nfi

Message
Distribution

OS Scheduler

APP Handler

al
nti

Figure 5-3 APP Flow

Table 5-1 APP Intialization

Action

Description

board init

contains initialization of pinmux settings and pad settings

gap init

contains initialization of GAP related parameters

profile init

contains initialization of BLE profiles

power manager init

contains initialization of power management related
Copyright 2018Realtek Semiconductor Corporation.
All Rights Reserved.

25

RTL8762C SDK User Guide

SW timer init

contains initialization of sw timers

app queue init

contains initialization of app queue

driver init

contains initialization of peripherals

System is initialized in main() function, including Board, Peripherals, BT Stack, Profile, Power Mechanism, Task,
etc.
In Application task, BT Stack, Profiles and Peripheral drivers are initialized, and IO MSG mechanism is
implemented. All functions are packaged into IO Events, and the Events are handled in related MSG handlers.
BT stack message is packaged into BT IO Event, which will be handled in the same way as Peripherals.

Re

Blue blocks shall be implemented by developer.

ek

alt
Co
de

nfi
Figure 5-4 IO Message Handling Flowchart

al
nti

5.4 MSG and Event Handling Flow

An original MSG is sent from universal Peripherals’ ISR or BT Stack, and is handled through the following flow:

1. MSG from Peripherals is forwarded by MSG Distributer to IO MSG Handler for handling;
2. MSG from BT Stack is forwarded by MSG Distributer to BT State Machine. BT State Machine handles MSG and
sends a BT IO MSG. MSG Distributer receives the BT IO MSG and then forwards it to IO MSG Handler for
handling ;

3. After a Message is received, IO MSG Handler shall make judgment and call the related Event Handler.
Developer programs shall:

1. Implement Peripheral ISR and fulfil initial handling in ISR. If further handling is required, a message will be sent.
Copyright 2018Realtek Semiconductor Corporation.
All Rights Reserved.

26

RTL8762C SDK User Guide

2. Maintain IO MSG Handler to receive and handle MSGs defined by developer.
3. Implement Event Handler about application.
A lower layer notifies an upper layer with MSG and Event mechanism, while an upper layer calls a lower layer
functions by APIs.

5.5 IO MSG
5.5.1 Message Format
typedef struct

uint16_t IoType;

alt

uint16_t subType;

Re

{

union{

void

ek

uint32_t parm;
*pBuf;

Co

};
}BEE_IO_MSG;

enum

al
nti

de

nfi

5.5.2 Message Type Definition

{
BT_STATUS_UPDATE,
IO_KEYSCAN_MSG_TYPE,
IO_QDECODE_MSG_TYPE,
IO_UART_MSG_TYPE,
IO_KEYPAD_MSG_TYPE,
IO_IR_MSG_TYPE,
IO_GDMA_MSG_TYPE,
IO_ADC_MSG_TYPE,
IO_D3DG_MSG_TYPE,
IO_SPI_MSG_TYPE,
IO_MOUSE_BUTTON_MSG_TYPE,

Copyright 2018Realtek Semiconductor Corporation.
All Rights Reserved.

27

RTL8762C SDK User Guide

IO_GPIO_MSG_TYPE,
MOUSE_SENSOR_MSG,
APP_TIMER_MSG,
IO_WRISTBNAD_MSG_TYPE
};

5.5.3 Message Subtype Definition
Taking MOUSE_BUTTON_SubType for example, developer can define subtypes of MOUSE BUTTON.
typedef enum
{

Re

MOUSE_BTN_LEFT_PRESS,

MOUSE_BTN_LEFT_RELEASE,

alt

MOUSE_BTN_RIGHT_PRESS,

MOUSE_BTN_RIGHT_RELEASE,

ek

MOUSE_BTN_MIDDLE_PRESS,

MOUSE_BTN_MIDDLE_RELEASE

de

nfi

5.5.4 Define User Message

Co

} MOUSE_BUTTON_SubType;

Developer can expand message types and customize message subtypes if needed.

al
nti

5.6 Pin Settings
Pin configuration can be set in board.h.
#define KEY_0

P4_0

#define BEEP

P4_1

#define LED_0

P2_1

#define LED_1

P2_4

5.7 DLPS Settings
DLPS configuration can be set in board.h as following:
1. Enable or disable DLPS mode:
Copyright 2018Realtek Semiconductor Corporation.
All Rights Reserved.

28

RTL8762C SDK User Guide

#define DLPS_EN 1

2. Developer-customized DLPS callbacks which will be called during entering or exiting from DLPS mode.
#define USE_USER_DEFINE_DLPS_EXIT_CB

1

#define USE_USER_DEFINE_DLPS_ENTER_CB

1

3. Enable or disable Peripheral functions: Any peripheral to be used must be enabled properly so that related
register will be saved during entering DLPS mode and restored during exiting from DLPS mode, and any
unnecessary peripherals should be disabled (0 - disabled, 1 - enabled).
#define USE_I2C0_DLPS

0

#define USE_I2C1_DLPS

0
0

#define USE_QDECODER_DLPS

0

…

ek

alt

Re

#define USE_TIM_DLPS

Co
al
nti

de

nfi
Copyright 2018Realtek Semiconductor Corporation.
All Rights Reserved.

29

RTL8762C SDK User Guide

6

Memory

6.1 Memory Map
RTL8762C memory consists of ROM, RAM, external SPI Flash and eFuse. Cache have dedicated RAM, and the
dedicated RAM also can be configured as general RAM using Realtek Vendor registers, as is shown in Figure 6-1.
Refer to RTL8762C Memory User Guide for more details.

0x0100_0000

Ext Flash
(8kk)

Re

0x0080_0000

0x0028_8000

alt

Buffer RAM
(32kB)

0x0028_0000

ek

0x0022_0000

Cache
(16kB)

0x0021_C000

Co

Data RAM

0x0005_FFFF

de

nfi

0x0020_0000

(112kB)

ROM

0x0000_0000

al
nti

(384kB)

Figure 6-1 Memory Map

6.2 ROM
The ROM code is located at [0x0, 0x60000), in which Bootloader, RTOS, BT Stack, Flash Driver and other
platform modules are built.

6.3 RAM
RTL8762C has two pieces of RAM, the Data RAM located at [0x00200000, 0x0021C000) and the Buffer RAM
Copyright 2018Realtek Semiconductor Corporation.
All Rights Reserved.

30

RTL8762C SDK User Guide

located at [0x00280000, 0x00288000). Cache can also be configured as data RAM, and is located at [0x0021C000,
0x00220000) as data RAM.

6.3.1 Data Ram
In the current SDK, Data RAM is divided into 6 parts in default, as is shown in Figure 6-2. The total size of APP
RAM and Data RAM Heap are 65K, which is unchangeable, while the size of each block can be adjusted by
modifying mem_config.h.

Patch RAM2 (16 KB)

ek

alt

Re

Data RAM Heap
(30 KB*)

Co

APP RAM
(35 KB*)

nfi

Patch RAM1 (17 KB)

de

al
nti

0x00200000

Main Stack (2KB)
Rom Data (12KB)

* means the size is adjustable
Figure 6-2 Data ram layout

6.3.2 Buffer Ram
In the current SDK, Buffer RAM is divided into 2 parts in default, as is shown in Figure 6-3.

Copyright 2018Realtek Semiconductor Corporation.
All Rights Reserved.

31

RTL8762C SDK User Guide

Buffer RAM Heap
(30 KB)
Rom Data (2KB)

0x280000

Figure 6-3 Buffer RAM Layout

6.4 Cache

Re

RTL8762C has a 16K bytes cache, and it co-works with SPIC (SPI Flash Controller) to speed up the SPI Flash
read. And it also can be used as data RAM. If it is configured as data RAM, it can be used for Data Storage or

at the end of data RAM.

ek

6.5 Flash

alt

Code Execution. If Cache is configured as data RAM, its range is [0x0021C000, 0x0022C000). This range is just

Co

RTL8762C supports external SPI Flash with a maximum size of 16M bytes. In the current SDK, External flash is
divided into 7 parts in default, as is shown in Figure 6-4.

nfi

Reserved

de

OEM Header

Starting
Starting Address:
Address: 0x800000
0x800000
Starting
Starting Address:
Address: 0x801000
0x801000

OTA Bank 1
FLASH Transport Layer

al
nti

OTA Bank 0

OTA Temp Area
APP Defined Section

Figure 6-4 External Flash layout

Copyright 2018Realtek Semiconductor Corporation.
All Rights Reserved.

32

RTL8762C SDK User Guide

6.5.1 Flash APIs
Flash operation APIs are listed as follows, refer to BEE2-SDK.chm for more details:
void flash_read(uint32_t start_addr, uint32_t data_len, uint8_t *data)
uint32_t flash_split_read(uint32_t start_addr, uint32_t data_len, uint8_t *data);
uint32_t flash_auto_read(uint32_t addr);
bool flash_read_locked(uint32_t start_addr, uint32_t data_len, uint8_t *data);
bool flash_split_read_locked(uint32_t start_addr, uint32_t data_len, uint8_t *data, uint32_t *counter);
bool flash_auto_read_locked(uint32_t addr, uint32_t *data);

Re

void flash_write(uint32_t start_addr, uint32_t data_len, uint8_t *data);

alt

void flash_auto_write(uint32_t start_addr, uint32_t data);
void flash_auto_write_buffer(uint32_t start_addr, uint32_t *data, uint32_t len);

ek

bool flash_write_locked(uint32_t start_addr, uint32_t data_len, uint8_t *data);

Co

bool flash_auto_write_locked(uint32_t start_addr, uint32_t data);
bool flash_auto_write_buffer_locked(uint32_t start_addr, uint32_t *data, uint32_t len);

nfi

void flash_erase(T_ERASE_TYPE type, uint32_t addr);

al
nti

de

6.5.2 FTL

FTL (flash transport layer) is used as abstraction layer for bt stack and user application to read/write data in flash.
The logical address range of FTL is [0, 0x17f0).
1.

BT storage space



Range: [0x0000, 0x0C00).



This region is used to store BT information such as device address, link key, etc.



Refer to RTL8762C BLE Stack User Manual for more details.

2.

APP storage space



Range: [0x0C00, 0x17f0)



APP can use this region to store information.



The following APIs can be called to read/write data in this region, these APIs are defined in Ftl.h, refer
to BEE2-SDK.chm for more details:
Copyright 2018Realtek Semiconductor Corporation.
All Rights Reserved.

33

RTL8762C SDK User Guide

static uint32_t ftl_save(void * p_data, uint16_t offset, uint16_t size)
static uint32_t ftl_load(void * p_data, uint16_t offset, uint16_t size)

6.6 eFuse
eFuse is a block of one-time programming memory which is used to store the important and fixed information,
such as UUID, security key and other one-time programming configuration. The single bit of eFuse cannot be
changed from 0 to 1, and there is no erase operation to eFuse, so be careful to update eFuse. Realtek offers MP
Tool to update certain eFuse sections.

ek

alt

Re
Co
al
nti

de

nfi
Copyright 2018Realtek Semiconductor Corporation.
All Rights Reserved.

34

RTL8762C SDK User Guide

7

Interrupt

7.1 Nested Vectored Interrupt Controller (NVIC)
NVIC features:


16 Cortex-M4 exceptions,32 maskable interrupt channels



8 programmable priority levels



Support vector table relocation



Low-latency exception and interrupt handling



Implementation of System Control Registers

Re

The NVIC and the processor core interface are closely coupled, which enables low latency interrupt processing
and efficient processing of late arriving interrupts. All interrupts including the core exceptions are managed by the
NVIC.

alt
ek

7.2 Interrupt Vector Table

Table 7-1 Interrupt Vector Table

NVIC

Number

Number

Exception Type

2

NMI

Reset

de

Reset

Description

nfi

1

Co

Exception

Nonmaskable interrupt.
The WDG is linked to the NMI vector

al
nti

All fault conditions if the corresponding fault handler is not
3

Hard Fault

enabled

Memory management fault; Memory
4

MemManage

Protection Unit (MPU) violation or access to illegal
locations

5

BusFault

Bus error;

6

Usage fault

Exceptions resulting from program error

7 ~ 10

RSVD
11

SVC

Supervisor Call

Copyright 2018Realtek Semiconductor Corporation.
All Rights Reserved.

35

RTL8762C SDK User Guide
Debug monitor (breakpoints, watch points, or external
12

Debug Monitor
debug requests)

13

RSVD

14

PendSV

Pendable Service Call

15

SYSTICK

System Tick Timer

[0]

System_ISR

System interrupt

17

[1]

WDG

Watch dog global interrupt

18

[2]

BTMAC_ISR

BT MAC interrupt

19

[3]

Timer3

Timer3 global interrupt

20

[4]

Timer2

Timer2 global interrupt

21

[5]

22

[6]

23

Re

16

Platform interrupt

I2S_0 TX

I2S_0 TX interrupt

[7]

I2S_0 RX

I2S_0 RX interrupt

[8]

Timer[4:7]

Timer4-7 interrupt(refer to 错误!未找到引用源。)

25

[9]

GPIO4

GPIO interrupt, P0_4

26

[10]

GPIO5

27

[11]

RTK_UART1

28

[12]

RTK_UART0

29

[13]

RTC

30

[14]

SPI_0

31

[15]

SPI_1

SPI_1 interrupt

32

[16]

I2C_0

I2C_0 interrupt

33

[17]

I2C_1

I2C_1 interrupt

34

[18]

ADC

ADC global interrupt

35*

[19]

Peripheral_ISR

Peripheral interrupt(refer to 错误!未找到引用源。)

36

[20]

GDMA0_Channel0

RTK-DMA0 channel 0 global interrupt

37

[21]

GDMA0_Channel1

RTK-DMA0 channel 1 global interrupt

38

[22]

GDMA0_Channel2

RTK-DMA0 channel 2 global interrupt

39

[23]

GDMA0_Channel3

RTK-DMA0 channel 3 global interrupt

ek

24*

alt

Platform

Co

GPIO interrupt, P0_5
RTK_UART1 interrupt

nfi

RTK_UART0 interrupt

de

Real time counter interrupt
SPI_0 interrupt

al
nti

Copyright 2018Realtek Semiconductor Corporation.
All Rights Reserved.

36

RTL8762C SDK User Guide
40

[24]

GDMA0_Channel4

RTK-DMA0 channel 4 global interrupt

41

[25]

GDMA0_Channel5

RTK-DMA0 channel 5 global interrupt

42

[26]

GPIO_Group3

GPIO group3 interrupt(refer to 错误!未找到引用源。)

43

[27]

GPIO_Group2

GPIO group2 interrupt(refer to 错误!未找到引用源。)

44

[28]

IR

IR module global interrupt

45

[29]

GPIO_Group1

GPIO group1 interrupt(refer to 错误!未找到引用源。)

46

[30]

GPIO_Group0

GPIO group0 interrupt(refer to 错误!未找到引用源。)

47

[31]

RTK_UART2

RTK_UART2 interrupt

Table 7-2 Timer 4~7 ISR

49

NVIC Number

Exception Type

alt

48

Re

Exception Number

[8]

Timer4

Timer4 interrupt

[8]

Timer5

Timer5 interrupt

[8]

Timer6

Timer6 interrupt

[8]

Timer7

Timer7 interrupt

ek

50

Co

51

Description

Exception Number

NVIC Number

nfi

Table 7-3 Peripheral ISR
Exception Type

Description

de

[19]

SPI_Flash

SPI_Flash interrupt

53

[19]

qdecode

54

[19]

keyscan

55

[19]

2-wire SPI

56

[19]

analog comparator

analog comparator interrupt

57

[19]

MailBox

MailBox interrupt

58

[19]

I2S_1 TX

I2S_1 TX interrupt

59

[19]

I2S_1 RX

I2S_1 RX interrupt

60

[19]

LCD

LCD interrupt

al
nti

52

qdecode global interrupt
keyscan global interrupt
2-wire/3-wire SPI interrupt

Copyright 2018Realtek Semiconductor Corporation.
All Rights Reserved.

37

RTL8762C SDK User Guide
Table 7-4 GPIO Group3 ISR
NVIC Number

Exception Type

Description

GPIO3

GPIO3 interrupt

[26]

GPIO7

GPIO7 interrupt

[26]

GPIO11

GPIO11 interrupt

[26]

GPIO15

GPIO15 interrupt

[26]

GPIO19

GPIO19 interrupt

[26]

GPIO23

GPIO23 interrupt

[26]

GPIO27

GPIO27 interrupt

GPIO31

GPIO31 interrupt

[26]

Table 7-5 GPIO Group2 ISR

alt

Re

[26]

[27]

Exception Type

Description

ek

NVIC Number

GPIO2

GPIO2 interrupt

Co

GPIO10

[27]

GPIO14

[27]

GPIO18

[27]

GPIO22

[27]

GPIO26

[27]

GPIO30

GPIO10 interrupt
GPIO14 interrupt
GPIO18 interrupt
GPIO22 interrupt

al
nti

[27]

GPIO6 interrupt

de

GPIO6

nfi

[27]

GPIO26 interrupt
GPIO30 interrupt

Table 7-6 GPIO Group1 ISR
NVIC Number

Exception Type

Description

[29]

GPIO1

GPIO1 interrupt

[29]

GPIO9

GPIO9 interrupt

[29]

GPIO13

GPIO13 interrupt

[29]

GPIO17

GPIO17 interrupt

Copyright 2018Realtek Semiconductor Corporation.
All Rights Reserved.

38

RTL8762C SDK User Guide
[29]

GPIO21

GPIO21 interrupt

[29]

GPIO25

GPIO25 interrupt

[29]

GPIO29

GPIO29 interrupt

Table 7-7 GPIO Group0 ISR
NVIC Number

Exception Type

Description

GPIO0

[30]

GPIO8

GPIO8 interrupt

[30]

GPIO12

GPIO12 interrupt

[30]

GPIO16

GPIO16 interrupt

GPIO20

GPIO20 interrupt

[30]

GPIO0 interrupt

alt

Re

[30]

[30]
[30]

GPIO24

GPIO24 interrupt

GPIO28

GPIO28 interrupt

ek
Co

7.3 Interrupt Priority

de

nfi

RTL8762C supports three fixed highest-priority levels and 8 levels of programmable priority.

Table 7-8 Interrupt Priority
Usage

-3

Reset Handler

-2

NMI

-1

Hard Fault

0

For interrupts which have high real-time requirement

al
nti

Priority

Interrupts at this priority can not be masked by critical section of freeRTOS;
1
2

ISR can not call any API provided by freeRTOS
BT related ISR

3
4

Normal ISR

5
Copyright 2018Realtek Semiconductor Corporation.
All Rights Reserved.

39

RTL8762C SDK User Guide
6
7

8

SysTick and PendSV

Power Management

RTL8762C will enter DLPS mode when certain conditions met and be woken up when it needs to work normally.
Refer to RTL8762C Deep Low Power State for more details.
Conditions for entering DLPS mode are listed as follows:
1. Idle task is running, while all the rest tasks are in blocked or suspended status, and no ISR occurs.
2. All OS messages have been handled.

Re

3. All the DLPS Check callback functions return true, which are registered by BT Stack, peripherals and
application.

alt

4. SW timer timeout > 20ms.

5. BT is in one of the states below and corresponding parameters meet the requirements.

ek

1) Standby State

2) BT Advertising State, Advertising Interval*0.625ms >=20ms

Co

3) BT Scan State, (Scan Interval – Scan Window)*0.625ms >= 15ms
4) BT connection as Master role, Connection interval * 1.25ms >= 12.5ms

nfi

5) BT connection as Slave role, Connection interval* (1+ Slave latency)*1.25ms >= 12.5ms

1. PAD wakeup signal

al
nti

de

RTL8762C can be woken up from DLPS mode by events as follows:

2. BT interrupt, which will be generated by the following scenarios:
1) Advertising anchor arrives when BT is in advertising state.

2) Connection event anchor arrives when BT connection is established.

3) Any BT event occurs, such as Remote Connection Request, Receiving data.
3. RTC interrupt
This function can be enabled by calling the following API.
void RTC_EnableSystemWakeup(void)
4. SW Timer timeout
Example for sample codes of DLPS mode in application.
1.Register CHECK Callback Function: The system will call the Callback Function to determine whether DLPS
Copyright 2018Realtek Semiconductor Corporation.
All Rights Reserved.

40

RTL8762C SDK User Guide

mode can be entered or not.
if (false == dlps_check_cb_reg(DLPS_PxpCheck))
{
DBG_DIRECT("Error: dlps_check_cb_reg(DLPS_PxpCheck) failed!\n");
}

2.Implement CHECK Callback Function: If True is returned, DLPS mode can be entered. If False is returned,
DLPS mode cannot be entered. Take PXP application for example:
bool DLPS_PxpCheck(void)
{
return allowedPxpEnterDlps;

Re

}

alt

3.Register Callback Function to save and restore peripheral registers:
Peripherals will be powered off once entering DLPS mode, so the peripheral registers must be saved during entering

ek

DLPS mode and restored during exiting from DLPS mode. Peripheral register values shall be saved in
DLPS_IO_EnterDlpsCb function and restored in DLPS_IO_ExitDlpsCb function.

Co

dlps_hw_control_cb_reg(DLPS_IO_EnterDlpsCb, DLPS_ENTER);
dlps_hw_control_cb_reg(DLPS_IO_ExitDlpsCb, DLPS_EXIT4_BT_READY);

al
nti

de

lps_mode_set(LPM_DLPS_MODE);

nfi

4.Enable DLPS mode.

Copyright 2018Realtek Semiconductor Corporation.
All Rights Reserved.

41

RTL8762C SDK User Guide

9 Download
9.1 About Images
Five Images are provided for BLE applications with RTL8762C: Patch Image, App Image, System Configuration
File, OTA Header File and Secure Boot Loader Image.
1. Patch Image is released by Realtek. Entries to patch functions are retained in ROM code, so original behavior
of ROM code can be modified or extended by patch.
2. Config file records information about hardware configuration and Bluetooth configuration, such as configure
BT Address, change Link number etc. Config file can be generated using MPTool.
3. App Image is a BLE application developed by developer, which is compiled with Keil and processed with

Re

fromelf and other tools.

4. OTA Header File defines flash Bank layout, which is generated by MP PackTool.

alt

5. Secure Boot Loader Image is released by Realtek, and it is used to optimize boot flow. Secure Boot Loader
Image must be programmed if bank switch of OTA update are not used (when using bank switch of OTA

ek

update, Secure Boot Loader Image should not be programmed).

Co

9.2 Application Image Processing Tool

nfi

The Application Image directly generated by Keil is in format of ELF, which needs to be converted into a binary
file and processed as necessary to facilitate programing and support OTA function[9].

de

Three commands are used in demo projects to process Application Image, which are fromelf, CheckSum_Gen
and md5.exe.

al
nti

9.2.1 fromelf

Fromelf is in Keil installation package, and its default installation path is C:\Keil_v5\ARM\ARMCC\bin\. For
more details, refer to section “Using the fromelf Image Converter” in help documents for Keil.
Bin files to be programmed and disassembling files are both generated by this tool.

9.2.2 CheckSum_Gen
1. Sytax:CheckSum_Gen.exe [Input Binary Filename] [Output Binary Filename]
2. Purpose: To support OTA function, information of checksum and length need to be added to the header of bin
file.
Copyright 2018Realtek Semiconductor Corporation.
All Rights Reserved.

42

RTL8762C SDK User Guide

For Application Image, the image Header of 1024 bytes is stored at the beginning of its address. For more details,
please refer to T_IMG_HEADER_FORMAT defined in system_rtl8762c.c.
Checksum of Application Image can be crc16 or sha256 which are recorded in the member crc16 and sha256 of
structure T_IMG_HEADER_FORMAT, and payload length is recorded in the member payload_len.
typedef struct _IMG_CTRL_HEADER_FORMAT
{
uint8_t ic_type;
uint8_t secure_version;
union
{
uint16_t value;

{

Re

struct

alt

uint16_t xip: 1; // payload is executed on flash
uint16_t enc: 1; // all the payload is encrypted

ek

uint16_t load_when_boot: 1; // load image when boot
uint16_t enc_load: 1; // encrypt load part or not

Co

uint16_t enc_key_select: 3; // referenced to ENC_KEY_SELECT
uint16_t not_ready : 1; //for copy image in ota

uint16_t not_obsolete : 1; //for copy image in ota

nfi

uint16_t integrity_check_en_in_boot : 1; // enable image integrity check in boot flow

de

uint16_t rsvd: 6;
};

al
nti

} ctrl_flag;
uint16_t image_id;
uint16_t crc16;
uint32_t payload_len;
} T_IMG_CTRL_HEADER_FORMAT;

typedef struct _IMG_HEADER_FORMAT
{
T_IMG_CTRL_HEADER_FORMAT ctrl_header;
uint8_t uuid[16];
uint32_t exe_base;
uint32_t load_base;
Copyright 2018Realtek Semiconductor Corporation.
All Rights Reserved.

43

RTL8762C SDK User Guide

uint32_t load_len;
uint8_t rsvd0[8];
uint32_t magic_pattern;
uint8_t dec_key[16];
uint8_t rsvd1[28];
T_VERSION_FORMAT git_ver;
RSA_PUBLIC_KEY rsaPubKey;
uint8_t sha256[32];
uint8_t rsvd2[76];
} T_IMG_HEADER_FORMAT;

Re

9.2.3 md5

1. Syntax:md5.exe [Input Binary Filename];

alt

2. Purpose: Calculate MD5 of bin file, and append it to the file for verification in programming by MP Tool

[11].

ek

Its suffix form is[Original File Name]-[MD5].bin

MP Tool uses MD5 as the check value for programming, and requires the MD5 value to be appended to name of

Co

the file to be programmed.
For example, after file

App_ver1.1.0 .bin is processed by md5.exe, a file with the suffix,

nfi

App_ver1.1.0-d77dd83cb2848d3e9ac04c7dd9367e69.bin, will be created in the same directory.

de

9.3 Downloading Pattern

al
nti

The downloading patterns available respectively for Patch Image, Config File and App Image are listed in 错误!
未找到引用源。.

Table 9-1 Downloading Patterns Available for Images

Patch Image

Config File

APP Image

Keil

×

×

√

SWDTool

√

√

√

MPTool

√

√

√

10 Debug
Two debugging methods have been provided to debug applications:
Copyright 2018Realtek Semiconductor Corporation.
All Rights Reserved.

44

RTL8762C SDK User Guide

1. Use log mechanism to trace your code procedure and data
2. Use Keil MDK and SWD to do the running control, add/delete breakpoints, access/trace memory and so on

10.1 Log Mechanism
Debug analyzer is designed to help trace application via printing messages and capturing BT data which could be
analyzed by 3rd party BT analyzing tool. Refer to Debug analyzer user manual for more details.
There is a dedicated log UART pin (P0_3 as default) to print log of application (Log function can be
re-configured to another pin in application). It is connected to PC via UART-to-USB adapter, and log data shall be
received from PC COM port.

Re

10.1.1 Debug analyzer

alt

Follow below steps to use Debug analyzer:
1.

Run DebugAnalyzer.exe, and click “Settings“, then click “Start “.

ek
Co
al
nti

de

nfi
Figure 10-1 Main Interface of Debug Analyzer

2.

Select the corresponding COM for “Serial Port” in “Settings” window.

3.

Select the corresponding App.trace file for “App Trace File” so that Debug analyzer can parse log correctly.
App.trace is created under the same directory of App.bin after the compilation of each project.

Copyright 2018Realtek Semiconductor Corporation.
All Rights Reserved.

45

RTL8762C SDK User Guide

ek

alt

Re
Co
al
nti

de

nfi
Figure 10-2 Debug Analyzer Setting Page

Debug analyzer also provides some advanced functions as below:

1. “Save Raw File” (it is recommended to check it): Save LOG to xxx.bin file, which can be used by Realtek
to carry out further analysis.
2. “Log Filter”: Filter Display - a new window pops up to display the filtered logs only.
3. “Keyword search”: Highlight the keyword in log printing window.
4. “Clear Trace”: Clear the log in the display frame.
Debug analyzer will automatically save the log data as a file, which is named based on port number and creation
date and time, such as COM 5_2015-06 -12_18-05-00.log.

Copyright 2018Realtek Semiconductor Corporation.
All Rights Reserved.

46

RTL8762C SDK User Guide

10.1.2 Basic Interface for Log Printing
Hardware has implemented a specialized GDMA channel for log printing, and the interface function prototype is:
DBG_BUFFER(T_LOG_TYPE type, T_LOG_SUBTYPE sub_type, T_MODULE_ID module, uint8_t level,
char* fmt, unit8_t param_num,...).

The parameter type is always TYPE_BEE2, and sub_type is always SUBTYPE_FORMAT. You may only pay
attention to the parameters module and level.

There are several predefined modules in T_MODULE_ID, and they are used to indicate which module the log
belongs to, and Debug Analyzer Tool will recognize and print the module name before log data.

Re

There is also a concept named Debug Level, and this indicates what level the log is displayed in. Four levels are

alt

defined:

Table 10-1 Debug Level

Usage Scenario

LEVEL_ERROR

Fatal, Procedure Cannot Advance (Log Token !!!)

LEVE_WARN

Abnormal Condition Occurred, But Procedure Can Advance (Log Token !!*)

LEVEL_INFO

Important Notification (Log Token !**)

LEVEL_TRACE

Verbose Debug

ek

Debug Level

Co

de

nfi

The DBG_BUFFER() API is flexible and powerful, but may be difficult to use. RTL8762C SDK have wrapped

al
nti

the interface, and provided some readable APIs in trace.h.

10.1.3 Wrapped Interfaces for Log Printing

There are several wrapped APIs for you to print specific log, and all of them have a common syntax as:
{MODULE}_PRINT_{LEVEL}_{PARAMNUM}(...)

{MODULE} can be replaced with the module name defined in trace.h, such as APP/GAP/USB/FLASH...
{LEVEL} can be replaced with the debug level, as well as one of the four levels:
ERROR/WARN/INFO/TRACE.
{PARAMNUM} can be replaced with number 0 to 8, which means the number of parameters this log will print
out.
Copyright 2018Realtek Semiconductor Corporation.
All Rights Reserved.

47

RTL8762C SDK User Guide

For example, if you are trying to print a warning log with 2 parameters in your application, you may write code
like this:
APP_PRINT_WARN2("Test app: ID = %d, data = 0x%x", id, data);
Then Debug Analyzer Tool will show this log like:
00494 10-13#17:06:45.994 087 02145 [APP] !!*Test app: ID = 3, data = 0xF0

Note:
1. Do not exceed 8 parameters (Maximum 20 parameters if directly use DBG_BUFFER()).
2. Do not exceed 128 char string for a single print.
3. Put all parameters into a single print if possible.

Re

10.1.4 Auxiliary Interfaces

alt

The DBG_BUFFER() API can only print simple format like Integer (d, i, u, o, x), Character (c) and Pointer (p).
Sometimes you may need to print string, binary array or BT Address, thus we have provided three auxiliary

1.

TRACE_STRING(char* data)

ek

interfaces to do that.

2.

Co

Directly put string into log data, the conversion directive is %s.
TRACE_BINARY(uint16_t length, uint8_t* data)

Output binary stream in Hex format, the conversion directive is %b.
TRACE_BDADDR(char* bd_addr)

Output binary array in BT address format, for example:

de

nfi

3.

Hex Array: 0xaa 0xbb 0xcc 0xdd 0xee 0xff –> Literal String: FF::EE::DD::CC::BB::AA

al
nti

Note: the maximum addresses numbers in a single log is 4. The conversion directive is %s.

10.1.5 Log Print Example

Below is an example to show the common use of log APIs and the corresponding output in Debug Analyzer Tool.
Log print code:
uint32_t n = 77777;
uint8_t m = 0x5A;
uint8_t bd1[6] = {0x00, 0x11, 0x22, 0x33, 0x44, 0x55};
uint8_t bd2[6] = {0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF};
char c1[10] = {'1', '2', '3', '4', '5', '6', '7', '8', '9', '0'};
Copyright 2018Realtek Semiconductor Corporation.
All Rights Reserved.

48

RTL8762C SDK User Guide

char c2[8] = {'a', 'b', 'C', 'd', 'E', 'F', 'g', 'H'};
char *s1 = "Hello world!";
char *s2 = "Log Test";
ADC_PRINT_TRACE1("ADC value is %d", n);
UART_PRINT_INFO3("Serial

data:

0x%x,

c1[%b],

s1[%s]",

m,

TRACE_BINARY(10,

c1),

TRACE_STRING(s1));
GAP_PRINT_WARN6("n[%d], m[%c] bd1[%s], bd2[%s], c2[%b], s2[%s]", n, m, TRACE_BDADDR(bd1),
TRACE_BDADDR(bd2), TRACE_BINARY(8, c2), TRACE_STRING(s2));
APP_PRINT_ERROR0("APP ERROR OCCURED...");

Corresponding result shown in Debug Analyzer:

Re

00252 10-25#17:12:02.021 132 10241 [ADC] ADC value is 77777
00253 10-25#17:12:02.021 133 10241 [UART] !**Serial data: 0x5a, c1[31-32-33-34-35-36-37-38-39-30],

alt

s1[Hello world!]

00254 10-25#17:12:02.022 134 10241 [GAP] !!*n[77777], m[Z] bd1[55::44::33::22::11::00],

ek

bd2[FF::EE::DD::CC::BB::AA], c2[61-62-43-64-45-46-67-48], s2[Log Test]
00255 10-25#17:12:02.022 135 10241 [APP] !!!APP ERROR OCCURED...

Co

10.1.6Log Control Interfaces

nfi

Sometimes you may decide to turn on some logs and turn off others. One method is to set the trace mask in Bee2

de

Config Tool, and then burn the config file to Bee2. However this is not flexible enough as you may want to
frequently change the log level, and it is not convenient to re-burn the config file everytime. So we provide you

1.log_module_trace_init()
2.log_module_trace_set()

al
nti

three APIs to control the log of specific level of specific module:

3.log_module_bitmap_trace_set()
Refer to SDK API document for parameters detail.

Here are some sample scenarios to help you understand how to use log control APIs in your own applications.
Assume that log print is already enabled and all of the log trace mask have been set to 1 in Config Tool, which
means all types of all level of logs can be output.

Senario 1: Disable all trace level and info level logs of APP module.
Copyright 2018Realtek Semiconductor Corporation.
All Rights Reserved.

49

RTL8762C SDK User Guide

int main(void)
{
log_module_trace_set(MODULE_APP, LEVEL_INFO, false);
log_module_trace_set(MODULE_APP, LEVEL_TRACE, false);
...
}

Senario 2: Only enable logs of PROFILE module.
int main(void)
{
uint64_t mask[LEVEL_NUM];

Re

memset(mask, 0, sizeof(mask));
log_module_trace_init(mask);

alt

log_module_trace_set(MODULE_PROFILE, LEVEL_ERROR, true);

ek

log_module_trace_set(MODULE_PROFILE, LEVEL_WARN, true);
log_module_trace_set(MODULE_PROFILE, LEVEL_INFO, true);

Co

log_module_trace_set(MODULE_PROFILE, LEVEL_TRACE, true);
...

nfi

}

de

Senario 3: Disable trace level logs of PROFILE/PROTOCOL/GAP/APP modules.
int main(void)

al
nti

{

log_module_bitmap_trace_set(MODULE_BIT_PROFILE | MODULE_BIT_PROTOCOL |
MODULE_BIT_GAP |MODULE_BIT_APP, LEVEL_TRACE, false);
...
}

Senario 4: Disable all trace level and info level logs except APP module, and also disable BT Snoop logs.
int main(void)
{
for (uint8_t i = 0; i < MODULE_NUM; i++)
{
log_module_trace_set((T_MODULE_ID)i, LEVEL_TRACE, false);
Copyright 2018Realtek Semiconductor Corporation.
All Rights Reserved.

50

RTL8762C SDK User Guide

log_module_trace_set((T_MODULE_ID)i, LEVEL_INFO, false);
}
log_module_trace_set(MODULE_APP, LEVEL_INFO, true);
log_module_trace_set(MODULE_APP, LEVEL_TRACE, true);
log_module_trace_set(MODULE_SNOOP, LEVEL_ERROR, false);
...
}

Note that Debug Analyzer Tool can generate BT Snoop log file (*.cfa) if the LEVEL_ERROR log of
MODULE_SNOOP is enable, in other words, if you turn off log of MODULE_SNOOP, BT Snoop log file will
not be generated, such as Senario 2 and Senario 4.

Re

10.1.7DBG_DIRECT

alt

Invoking APIs based on DBG_BUFFER has less effect on system performance, but the log will not be printed in

ek

real-time, because log printed by these APIs will be cached in buffer and sent to Log Uart when system is idle.
DBG_DIRECT can be used to print real-time log. This API has great influence on system performance for it will
directly send Log to Log UART, and suspend execution of any program till log printing is completed, so it is

Co

strongly recommended that it is only used under specific situations as follows:

2.

Scenario when real-time log is necessary

3.

In DLPS exit callback

Example:
Log print code:

al
nti

de

Before reboot

nfi

1.

DBG_DIRECT("Bee2 ROM version: %s %s", __DATE__, __TIME__);
Corresponding result shown in Debug Analyzer:

00002 12-22#19:19:32.573 004 00000 Bee2 ROM version: Dec 22 2017 14:54:04

10.2 Debug with SWD
As is shown in Figure 10-1, Bee2 have implemented the following three basic debug interfaces: run control,
breakpoint and memory access, and one trace port interface: DWT. JTAG is not supported in Bee2, while SWD is
supported.

Copyright 2018Realtek Semiconductor Corporation.
All Rights Reserved.

51

RTL8762C SDK User Guide

alt

Re
ek

Figure 10-1 Debug and Trace port interface in Bee2

Co

10.2.1 Using SWD Debug Interface

Before using SWD, you should properly install and configure your Keil MDK-ARM and SWD debugger.

nfi

Key debug features supported by Bee2 are introduced in the UI:

2.

Breakpoints buttons: Add/Delete/Conditional

3.

Several functional windows for debugging:

al
nti

Running control buttons: Running/Reset/Step

de

1.

1)

Core registers window to view/modify MCU register values.

2)

Disassembly window to view disassembly code, support breakpoints and mixed mode (show C code).

3)

Source code window to view C code, support breakpoints and variable value real-time display.

4)

Variable watch window to trace interested variable added in.

5)

Memory window to view/modify interested memory, support direct address input and variable address
input.

6)

Call stack and local variable window to show current call stack and local variable (variable in the stack).

Sometimes you may encounter problems that your image can not be successfully burned to flash of Bee2, or Keil
just can not find SWD even if you have connected Bee2 and J-link properly. In these cases, checking the
following configurations are helpful:
Copyright 2018Realtek Semiconductor Corporation.
All Rights Reserved.

52

RTL8762C SDK User Guide

1. Change debug clock to a smaller value (e.g. From 2 MHz to 1 MHz), or just replace your SWD debug wire to
a shorter one.
2. Bee2 may have entered DLPS mode, reset Bee2 and system will keep active for the first 5 seconds.

10.2.2 Using Trace Port Interface DWT
Bee2 provides a way to trace memory using DWT. And a group of four APIs are provided to monitor up to four
memory areas:
watch_point_0_setting()
watch_point_1_setting()
watch_point_2_setting()

Re

watch_point_3_setting()

Refer to debug_monitor.h for the detail usage.

alt

Below is a sample to show you how to use the debug monitor APIs.

{

ek

void debug_monitor_enable(void)

Co

//set debug monitor priority
NVIC_SetPriority(DebugMonitor_IRQn, 3);

nfi

//enable exception and monitor control register

al
nti

de

CoreDebug->DEMCR |= CoreDebug_DEMCR_MON_EN_Msk | CoreDebug_DEMCR_TRCENA_Msk;

//comment: set appropriate parameter and enable watch point to specific address if desired
//set DWT compare registers (max 4 comparators)

watch_point_0_setting(0x1000180C, DWT_DATAVSIZE_WORD, DWT_FUNCTION_WRITE);
watch_point_1_setting(0x10000004,DWT_DATAVSIZE_WORD,DWT_FUNCTION_READ_OR_WRITE);
watch_point_2_setting(0x10000008,DWT_DATAVSIZE_WORD,DWT_FUNCTION_READ_OR_WRITE);
watch_point_3_setting(0x1000000C,DWT_DATAVSIZE_WORD,DWT_FUNCTION_READ_OR_WRITE);

//enable DWT control register
DWT->CTRL |= DWT_CTRL_CYCCNTENA_Msk;
return;
}

Copyright 2018Realtek Semiconductor Corporation.
All Rights Reserved.

53

RTL8762C SDK User Guide

If the memory you are interested in is accessed, the changing value will be printed to the log UART and you can
trace them by using Debug Analyzer Tool.

ek

alt

Re
Co
al
nti

de

nfi
Copyright 2018Realtek Semiconductor Corporation.
All Rights Reserved.

54



Source Exif Data:
File Type                       : PDF
File Type Extension             : pdf
MIME Type                       : application/pdf
PDF Version                     : 1.5
Linearized                      : No
Encryption                      : Standard V2.3 (128-bit)
User Access                     : (none)
Creator                         : Microsoft® Word 2016
Title                           : Bee项目文档规范
Author                          : Chuanguo Xue
Producer                        : Microsoft® Word 2016; modified using iTextSharp 5.0.5 (c) 1T3XT BVBA
Subject                         : V1.2
Modify Date                     : 2018:09:21 11:34:53+08:00
Create Date                     : 2018:09:21 11:23:23+08:00
Tagged PDF                      : Yes
Language                        : zh-CN
Page Count                      : 54
EXIF Metadata provided by EXIF.tools

Navigation menu