找回密码
 立即注册

使用微信账号登录

只需一步,快速开始

CSR867x学习笔记:查看库文件运行时debug信息

2020-5-14 15:07| 发布者: csdn| 查看: 5748| 评论: 2|来自: CSDN

摘要: 1. 引言 今天有群友问到如何查看库文件运行log。先给这位群友的好学点赞。 查看库文件运行log可以有针对性地

1. 引言

今天有群友问到如何查看库文件运行log。先给这位群友的好学点赞。

查看库文件运行log可以有针对性地了解特定功能块的代码执行情况,是快速学习和理解代码的好方法。

2. 查看方法

以ADK的source工程举例。默认情况下看不到C:\ADK4.0.0\src\lib\a2dp\a2dp_api.c的运行log:

void a2dpSignallingConnectInd (remote_device *device)
{
    MAKE_A2DP_MESSAGE(A2DP_SIGNALLING_CONNECT_IND);

    PRINT(("a2dpSignallingConnectInd"));

    message->device_id = findDeviceId(device);

    if (device != NULL)
    {
        message->addr = device->bd_addr;
    }
    else
    {
        BdaddrSetZero(&message->addr);
    }

    MessageSend(a2dp->clientTask, A2DP_SIGNALLING_CONNECT_IND, message);
}

打开source的VM工程的properties界面:

这里写图片描述

可以看到Libraries栏里有很多库文件名,这些库文件都保存在ADK的.\tools\lib\BlueLab-7.0.1-Release\assisted路径,如下:
这里写图片描述

细心的读者可能已经发现了,在properties里的库文件是没有lib前缀的,而上述路径下的库文件都是有前缀的。我想可能是xIDE耍的小花招吧。

新的问题是,这些.a文件是怎么来的呢?以liba2dp.a和liba2dp_debug.a为例,他们对应的源码在路径为C:\ADK4.0.0\src\lib\a2dp的文件夹中。进入此文件夹,用notepad++等文本阅读工具打开VARIANTS文件,可以看到如下内容:

VARIANTS := 12 debug

CFLAGS_12 := -DA2DP_1_2 # Define A2DP V1.2 (default V1.3)

CFLAGS_single_slot := -DSINGLE_MEM_SLOT  # flag for building standard version of A2DP lib that uses a single memory slot for internal data storage

CFLAGS_debug := -DA2DP_DEBUG_LIB  # flags for building debug version of A2DP lib

CFLAGS_single_slot_debug := -DSINGLE_MEM_SLOT -DA2DP_DEBUG_LIB  # Single memory slot and debug

CFLAGS_atrac := -DINCLUDE_ATRAC  # flags for building ATRAC version of A2DP lib

CFLAGS_sbc_only := -DA2DP_SBC_ONLY  # flags for building an SBC only version of A2DP lib

可以看到第一行的VARIANTS后面有12、debug这两个名称。第2、4行分别是这两个名称对应的编译选项。当你修改了a2dp路径下的源码并运行开始菜单->ADK->Rebuild->VM libraries后,新的liba2dp.a、liba2dp_debug.a、liba2dp_12.a会生成在上述库文件的路径中。

如果你想查看a2dp库的运行log,可以简单地将properties中的a2dp修改为a2dp_debug,如下:

这里写图片描述

修改完成后进入调试模式,即可在printf 0窗口中打印出此库文件中包含的log信息。

同样的,每个库文件夹下的debug信息都可以用这种方法,即使没有VARIANTS文件,也可以依葫芦画瓢自己创建一个。

3. 总结

一些注意点:

  • 受限于CSR867x的const区只有24KB,不能一次性包含多个后缀为_debug的库文件,否则工程会编译失败。
  • 工程包含_debug.a库文件后,程序只能运行在调试模式,否则无法正常开机。

来源:https://blog.csdn.net/wzz4420381/article/details/79980963
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
1

路过

雷人

握手

鲜花

鸡蛋

刚表态过的朋友 (1 人)

相关阅读

发表评论

最新评论

引用 喜欢≠爱 2021-6-4 12:25
学习了
引用 Dark_moon 2020-10-1 09:48
楼主辛苦了,感谢分享。

查看全部评论(2)

小黑屋|手机版|我爱蓝牙网 - 52Bluetooth

GMT+8, 2024-4-24 22:39 , Processed in 0.182033 second(s), 32 queries , Gzip On, MemCached On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

返回顶部