
日常bug
s0nail
以前
很喜欢单片机 ,不久烦了就弃了
很喜欢电机调速 ,不久腻了就弃了
现在
很喜欢C++,...
很喜欢ROS, ...
提高效率,加油干
展开
-
2021/9/29 TX POWER 蓝牙发射功率
1.觉得挺奇葩如果不是扩展包的话,就是TXpower设定,没法通过hci下发就是 在controller设定好,也没法中途去变化。扩展包,有这个选项,能够改变,可以通过HCI下发指令来更改2.AD9361 设置发射功率,要注意的是初始化设定好了,/*TXAttenuationControl*/10000,//tx_attenuation_mdB***adi,tx-attenuation-mdB1,//u...原创 2021-09-29 11:30:17 · 1035 阅读 · 0 评论 -
2021/9/7 ad9361 SPI 通信与数据接口
之前做过这部分工作,没有整理,现在回顾一下。当FPGA 版本出来之后,怎么让AD9361 动起来 ,就是头等大事。当时十分在意,SPI是否通了?ENSMAD9361收发器包括一个使能状态机(ENSM),允许对器件的当前状态进行实时控制。在正常运行过程中,器件可以置于多种不同状态,包括 • 待机—节能,频率合成器被禁用 • 休眠—待机,所有时钟/BB PLL被禁用 • TX—TX信号链被使能 • RX—RX信号链被使能 • FDD...原创 2021-09-07 16:11:02 · 3722 阅读 · 0 评论 -
2021/9/2 BLE PRA 广播包
1. RPA 广播包RPA: Resolvable private address 可解析私密地址RAL:Resolvableaddress list 可解析地址列表IRK :identity resolving key身份解析密钥对于广播要发一个 可解析地址,通过host 下发HCI指令有三步1.H_CMD_LE_CLEAR_RSLV_LIST注:如果不clear,会不会有什么影响呢?其实也没啥。2.H_CMD_LE_ADD_DEV_TO_RSLV_LIS...原创 2021-09-02 09:26:43 · 698 阅读 · 0 评论 -
2021/9/1 扩展包与周期包
1.周期包 带AUX_CHAIN_IND包2.扩展包 带AUX_CHAIN_IND包包 带AUX_CHAIN_IND包3.广播是从host下发 1000个byte 数据量,对于周期广播,先填满 AUX_SYNC_IND,还有数据,后面续AUX_CHAIN_IND,直到把数据发完。而扩展广播包,先填满AUX_ADV_IND,若还有数据,后面续AUX_CHAIN_IND,直到把数据发完。4.host 怎么下发 1000个byte 数据量?先填满一个包的最大容...原创 2021-09-01 09:38:43 · 255 阅读 · 0 评论 -
2021/8/25 ble 广播数据更新与ADI
1.广播如果数据需要更新?按照我们朴素的想法,先 通过 HCI 指令下 Disable,再传 adv_data,再Enable。CEVA中llm_adv.c,hci_le_set_adv_data_cmd_handler 程序不是这样的逻辑,Enable的情况下,更新数据。之前,我们给的内存太少,支持CFG的act 事件就只有两个。按照原有程序逻辑和大于2的act事件,更新数据是没问题。内存不改,不想更改cfg,act事件也只有两个。一般的想法,之前的广播数据会释放,然后再填入新的广播.原创 2021-08-26 09:19:39 · 490 阅读 · 0 评论 -
2021/8/23 python 2.7 与python 3.9 兼容
1. 系统默认python3.9那么系统默认,python3.9版本,像wireshark 的插件就是用python3写的。为了方便之后的使用,所以不需要更改这个默认。但是有的之前程序需要python2.7,这咋整呢?2.vscode 里调用python这样的话,我们可以选择 python2.7低版本,来运行。这是lanuch.json 文件,{ // Use IntelliSense to learn about possible attributes. .原创 2021-08-23 14:03:27 · 1203 阅读 · 0 评论 -
2021/8/17 扩展包与周期广播
1.在37,38,39 广播通道发 ADV_EXT_IND,注意这时候的广播 没有开RX, 都是TX2.发完ADV_EXT_IND之后,什么时候发AUX_ADV_IND。3. Aux offset 怎么设置?正常的话 ,每个广播通道对应不同 AUX OFFSET,对于扫描就知道,什么时候发aux_offset,准备收就可以呀。4.周期广播的时候,那怎么收adv_sync_ind?这个时候需要注意,扩展包扫描窗口可以开小,但是扩展包扫描间隔必须大一点。收到aux_...原创 2021-08-17 19:47:00 · 597 阅读 · 2 评论 -
2021/8/9 安装 wireshark 蓝牙ble nrf系列
1.https://www.nordicsemi.com/Products/Development-tools/nrf-sniffer-for-bluetooth-le注:有3.1.0 与3.0.0都是可以。3.1.0 支持他们家自己的平台。2. 安装wireshark https://www.wireshark.org/#download3. 安装python ,pip, pyserialhttps://www.python.org/downloads/ ...原创 2021-08-09 19:35:58 · 369 阅读 · 0 评论 -
2021-8-9 白化 蓝牙 blewhiten
用法 : bleWhiten(pdu,adv_dataLen,bleWhitenStart(38)); 在github 上找的,原理不清楚。白化数据一调用,变成非白化数据。非白化数据一调用,就变成白化数据uint8_t swapBits(uint8_t a){ uint8_t v = 0; if (a & 0x80) v |= 0x01; if (a & 0x40) v |= 0x02; if (a &...原创 2021-08-09 08:58:11 · 941 阅读 · 0 评论 -
2021/8/4- eclipse的优化等级
1.__attribute__((optimize("O0")));"O0" 是代表优化等级,0是不优化,根基自己选则,在函数定义的前面加上__attribute__((optimize("O0"))) 。就可以自己定义优化等级,而不是编译器的选项约束2. 开优化选项的时候,有的时候 会存在问题。 data_iq = data_i1 | data_q1; *(uint32_t *)REG_RF_BRIGE_FIFO_ADDR = data_iq; } ena...原创 2021-08-04 09:45:22 · 2232 阅读 · 0 评论 -
2021-7-26 ad9361 调频点
1. 整数integer 和 小数 fraction跟两个公式有关,整数和 小数 也就知道了RFPLL :VCO_freq 频率6G~12GLO :就是TX/RX发出的频率,如2.4GREF: 40M频率算出整数和小数之后,直接赋值给 寄存器,例如 1. 分别写 ad9361_spi_write(ad9361_phy->spi, REG_TX_FRACT_BYTE_0, 0x62); ad9361_spi_write(ad9361_phy-&g...原创 2021-08-02 20:37:35 · 948 阅读 · 1 评论 -
2021/8/2 指定内存
1. 比如 想给 指定一块内存 写程序在 ld 文件 .text_test ORIGIN(iram) + 0x10000: { KEEP(*(.text_test)) }> iram =0然后在调用函数前 加上ESI_SECTION (".text_test")ESI_SECTION (".text_test") int mian(void)用途:可以 测试内存的情况,增大内存,改天 很有必要 仔细看看内存这部分东东。...原创 2021-08-02 20:36:23 · 90 阅读 · 0 评论 -
2021-07-04 寄存器读写
1.往寄存器里 写值 再读值typedef uint8_t u8;typedef uint16_t u16;typedef uint32_t u32;往寄存器里 写值void reg_write(u32 Addr, u32 Value) { u32 *LocalAddr = (u32 *)Addr; *LocalAddr = Value;}从 寄存器里 读值u32 reg_read(u32 Addr) { return *(volatile u32 *)Addr;}.原创 2021-07-04 17:15:08 · 3088 阅读 · 0 评论 -
2021/7/22 uint64 打印出来
1. uint64_t 打印出来uint64_t lo_freq_hz;char *freq_ptr = u64_to_str(lo_freq_hz);DBG_FLOW("tx_lo_freq= %s \r\n",freq_ptr );char * u64_to_str(uint64_t val){ uint8_t tmpbuff[32]; uint8_t cnt = 0; int i,j; uint64_t tmp; uint8_t num_tmp = 0; memset.原创 2021-07-22 19:47:01 · 1694 阅读 · 0 评论