- 博客(18)
- 资源 (5)
- 收藏
- 关注
原创 VS 控制台程序出现不能引用c的问题
错误 LNK2019 无法解析的外部符号 "void __cdecl xxx_alg_init(void)" (?xxx_alg_init@@YAXXZ),函数 main 中引用了该符号 xxx_alg_init。
2023-10-30 11:58:10
205
原创 回调函数(函数指针)使用场景
1.底层消息通知上层 典型的中断类型的外围达到触发条件,需要通知上层去主动读取详细情况;2.不同模块的同步调用 A和B两个模块,A模块在运行过程中需要调用B模块中的一个接口,拿到B模块执行结果A才能继续往下执行,这个时候如果使用消息队列,等B得到执行了,A已经跑完了;回调函数解决不同模块同步调用的解耦问题;3.异步执行的结果返回 A模块执行过程中发送消息到B模块执行函数,B模块执行完后需要实时地将执行结果返回A模块,在消息队列中塞一个指针即可;4.中间层驱动的底层驱动依赖注册使...
2022-04-18 10:45:35
539
原创 函数未定义原因
之前总结过函数未定义的原因,时间久了容易发懵1.没有添加路径;2.添加的里没有该h文件;3.同一个工程下有多个同名的h文件,恰好被引用的h文件中没有这个函数4.没有将c文件添加进入工程中编译,在使用sdk的驱动文件的时候经常会忘记这点,写出来做提醒...
2019-06-21 15:38:39
7223
原创 time.h文件时间戳函数的使用
标准c里有一个time.h文件,里面提供一些时间计算函数;extern _ARMABI time_t mktime(struct tm * /*timeptr*/) __attribute__((__nonnull__(1))); /* * converts the broken-down time, expressed as local time, in the struct...
2019-05-27 14:50:30
1718
原创 52832添加服务
sdk:15.2https://www.cnblogs.com/iini/p/9332463.htmlhttps://www.cnblogs.com/iini/p/9095622.html如上原厂大佬博客所言,softdevice的flash code段是确定的,而其ram是不确定的,直接和服务的多少以及宏:NRF_SDH_BLE_TOTAL_LINK_COUNT //一共...
2019-04-01 11:37:35
1852
原创 BLE之服务uuid
528.32 的uart工程#define NUS_BASE_UUID {{0x9E, 0xCA, 0xDC, 0x24, 0x0E, 0xE5, 0xA9, 0xE0, 0x93, 0xF3, 0xA3, 0xB5, 0x00, 0x00, 0x40, 0x6E}} /**< Used vendor specific UUID. */#defi...
2019-03-27 16:03:41
3484
原创 ancs协议分析
网上有很多关于ancs的文章,但是翻译过来的可能会看的没头没脑,建议还是看苹果的官方文档:https://developer.apple.com/library/archive/documentation/CoreBluetooth/Reference/AppleNotificationCenterServiceSpecification/Specification/Specific...
2019-03-20 19:28:00
4016
原创 nordic 调度器代码分析
nrodic的队列并没有使用通常的队列链表数据结构那种方式来实现,简洁实用,写的很好,所以这里就对其进行一次解读理解:uint32_t app_sched_init(uint16_t event_size, uint16_t queue_size, void * p_event_buffer)函数定义了一个特定长度的队列,event_size决定队列节点数据最大容量,queue_size决...
2019-03-14 17:37:22
2705
原创 单片机内存——堆、栈、变量区以及内存管理的理解
1.查看单片机的数据手册的时候我们总是可以看到有一个ram和flash的大小。flash是用于存储程序的,ram用于存储程序运行中的一些变量和长量。以nordic52832为例:这是noridc采用cortex m4架构后芯片的memoney map,实际上简化一下就是:这只是简单的内部存储组成示意图,并不是说地址上52832也是这么排的。事实上按照m4的架构有可能用于...
2019-03-13 18:13:04
3411
2
原创 日志,51822添加服务与特征的区别;
添加服务或者UUID:err_code = sd_ble_uuid_vs_add(&nus_base_uuid, &p_nus->uuid_type);添加特征:err_code = send_rx_char_add(p_nus, p_nus_init, BLE_UUID_FIRST_CHARACTERISTIC);区别:前者能添加服务和128位的UUID;后者这...
2018-12-26 20:26:04
830
原创 Nordic52810开发手记—环境安装
一.安装准备1.keil5软件以及破解器2.nordic52系列MDK硬件包:http://www.nordicsemi.com/eng/content/search?SearchText=Pack&SearchButton=Search历史版本硬件包:http://developer.nordicsemi.com/nRF51_SDK/pieces/nRF_DeviceFami...
2018-09-14 11:29:16
6321
1
原创 nrf 软件定时器
52810的软件定时器建立在一个rtc的基础上,使用一个rtc计时。rtc作为一个发动机一直在跑。rtc以tick为单位进行中断触发,每增加一个tick就来一次中断,中断到来之后就和队列预期的tick值比较,如果一样就执行时钟handler。所有的时钟都是按照压入一个钟队列内进行处理。当create一个时钟时程序只是创建了一个时钟队列的结点,保存handler等信息,此时并没有入队。...
2018-09-08 18:44:02
1632
原创 2640开发日志
SNV2640存在4K的snv内存,实际使用可以根据项目情况对snv大小进行裁剪,裁剪根据对OSAL_SNV进行定义实现:1.OSAL_SNV=0:工程中不能使用snv,绑定信息需要使用到snv,所以该定义下无法进行绑定;2.OSAL_SNV=1:一个snv页,2K数据可写;3.OSAL_SNV=2:两个snv页,4K数据可写;4K的snv共有15个snv id号,每一个id号最多支持写252个字...
2018-03-14 08:39:13
179
原创 c语言基础
1.对于结构体的使用,当前值是结构体实体时使用 . 符号引用,当前值是结构体指针时使用 -> 符号引用 //定义一个结构体指针 struct Student stu; struct Student * student = &stu; stu.score = 90.0f; stu.num = 102; st...
2018-03-10 17:31:19
280
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人