System API of DA1458x Software Platform(三)

Serial Logging Interface API

系统提供了串行记录接口API。 可以将此接口用于记录目的,或通过UART与外部系统通信。 该API在arch_console.h头文件中定义。

void arch_puts(const char *s)

放字符串功能。 将字符串s推送到UART队列。

int arch_printf(const char *fmt, …)

Printf功能。 将格式化的输出放入UART队列。

void arch_printf_process(void)

定期从主循环调用此函数,以将队列的内容压入UART。

BLE Statistics API BLE统计API

系统提供了一个简单的API,以收集有关给定连接的统计信息。 与CFG_BLE_METRICS一起启用时,在接收中断中添加代码,该代码对设备与远程对等方通信期间的错误进行计数。 数据保存在以下类型的全局结构中:
类型定义结构

{
uint32_t rx_pkt;
uint32_t rx_err;
uint32_t rx_err_crc;
uint32_t rx_err_sync;
} arch_ble_metrics_t;

用户可以通过调用arch_ble_metrics_get()函数获得指向此结构的指针,并通过调用arch_ble_metrics_reset()函数来重置内容。

Development Mode API

为了跟踪常见错误并简化开发,SDK软件提供了一个配置标志,可以使用该配置标志来启用开发调试模式,称为CFG_DEVELOPMENT_DEBUG。
对于生产软件,应禁用此标志。 如果启用,则可以使用以下功能:
●SysRAM永远不会在深度睡眠模式下断电,从而使开发人员可以在深度睡眠模式下运行应用程序而无需对OTP进行编程。
●提供的验证是GPIO引脚不用于多个功能。
●硬件故障,NMI不可屏蔽中断和断言声明条件的断点会自动发出,以帮助开发人员连接调试器并跟踪错误原因。

GPIO Reservation

在开发调试模式下,在通过GPIO驱动程序发出操作之前,应用程序应使用RESERVE_GPIO(name,port,pin,func)函数保留GPIO引脚。 尝试保留已保留的引脚或尝试使用未保留的引脚将使应用程序断点。
GPIO保留功能在开发调试模式下也可以禁用,通过定义GPIO_DRV_PIN_ALLOC_MON_DISABLED标志,这样可以缩小内存消耗。

Assert, NMI and Hard Fault Handlers

在开发调试模式下,将ASSERT_ERROR()和ASSERT_WARNING()宏定义为断点。一旦检测到错误情况,程序将停止运行,用户可以连接调试器并找出导致错误的原因。在生产模式下(未定义CFG_DEVELOPMENT_DEBUG),ASSERT_WARNING()不执行任何操作,而ASSERT_ERROR()将使程序停留在while(1)循环中,以等待看门狗复位。
与ASSERT逻辑类似,硬故障和NMI处理程序都在开发模式下设置为断点,并且会在生产模式下引起复位。
在开发模式下,两个处理程序都将在发出断点之前在保留RAM中保留处理器状态的副本。
保存的状态信息包括以下内容:
寄存器值R0-R3,R12,LR,PC,PSR,SP,CFSR,HFSR,AFSR,MMAR,BFAR。
用户可以查看状态信息以尝试跟踪哪个命令已发出NMI或“硬故障”。NMI处理程序会将状态保存在地址0x81850中,硬件故障处理程序是保存在地址0x81800中。

Advanced Features API

Wake-Up and External Processor Configuration

在外部处理器应用程序中,设备应该能够在通过GTL发送消息时唤醒外部处理器,并在主机应用程序需要时从外部处理器唤醒。 此功能由两个配置标志控制:
●CFG_EXTERNAL_WAKEUP:定义该标志可使运行主机应用程序的外部处理器通过切换引脚的状态来唤醒DA1458x。
●CFG_WAKEUP_EXT_PROCESSOR:定义此标志可在GTL传输期间使引脚产生脉冲。
用于唤醒DA1458x的引脚和参数在user_periph_setup.h文件中定义,定义如下:EXTERNAL_WAKEUP_GPIO_PORT,EXTERNAL_WAKEUP_GPIO_PIN和EXTERNAL_WAKEUP_GPIO_POLARITY。 在同一头文件中,使用EXT_WAKEUP_PORT和EXT_WAKEUP_PIN定义定义了用于向外部主机发送GTL消息信号的引脚。

True Random Number Generator (TRNG)

程序员可以通过调用函数trng_acquire()来获得128位随机数,该函数的定义如下:void trng_acquire(uint8_t * trng_bits_ptr)在trng_bits_ptr指针中返回了128位(16字节)随机数。 要启用真随机数生成器,您需要定义CFG_TRNG标志。 系统初始化时会生成一个随机数,并将其用作C标准库随机数生成器的种子

扫描二维码关注公众号,回复: 9363140 查看本文章
Boost Output Voltage (DCDC_VBAT3V)

在升压电压配置的情况下,已提供函数syscntl_set_dcdc_vbat3v_level()来设置升压转换器的输出电压。 该函数定义如下:
void syscntl_set_dcdc_vbat3v_level(枚举SYSCNTL_DCDC_VBAT3V_LEVEL级别)此函数将根据以下枚举设置输出级别:

enum SYSCNTL_DCDC_VBAT3V_LEVEL
{
SYSCNTL_DCDC_VBAT3V_LEVEL_2V4 = 4// 2.4 V
SYSCNTL_DCDC_VBAT3V_LEVEL_2V5 = 5// 2.5 V
SYSCNTL_DCDC_VBAT3V_LEVEL_2V62 = 6// 2.62 V
SYSCNTL_DCDC_VBAT3V_LEVEL_2V76 = 7// 2.76 V
};
Near Field Control

可以控制所有活动连接的输出功率,以进一步降低功耗。 提供以下功能:
●void rf_nfm_enable(void):启用近场模式。
●void rf_nfm_disable(void):禁用近场模式。
●bool rf_nfm_is_enabled(void):检查是否启用近场模式,返回(true)或(false)

AES Crypto

DA1458x SoC带有AES加密硬件引擎。 该引擎是从堆栈中使用的,但是如果需要,也可以从用户中调用。 必须通过同步(通过消息)方式进行通信,以确保API的使用不会与从堆栈调用的操作冲突。 还提供了AES的纯软件实现,程序员可以将其用作替代方案。

Co-Existence

提供了一组功能来处理WLAN共存。 支持两个WLAN输入输入和BLE优先级输出。 提供的功能可处理每个连接的优先级和蓝牙状态。

发布了19 篇原创文章 · 获赞 4 · 访问量 1711

猜你喜欢

转载自blog.csdn.net/ydgd118/article/details/104461095