Bovey's Blog

点滴


  • 首页

  • 归档

  • 标签

git常用操作

发表于 2019-01-18

常用操作

  1. dev分支测试ok后合并到master分支

    1
    2
    3
    4
    5
    git checkout dev
    git pull
    git checkout master
    git merge dev
    git push -u origin master
  2. master分支更新后dev1分支同步master分支

    1
    2
    3
    4
    5
    git checkout master 
    git pull
    git checkout dev
    git merge master
    git push -u origin dev
  3. 从dev分支创建release分支,例如要发布2.0版本

    1
    2
    3
    4
    git checkout -b release-2.0 develop
    // change something to commit
    git commit -a -m "Bumped version number to 2.0"
    git push
  4. release分支合并到master分支同上1

  5. 删除本地release分支

    1
    2
    git branch -d release-2.0
    git push
  6. 删除远程release分支

    1
    git push origin --delete release-2.0
  7. bug分支,master分支上或其他某分支发现bug,则从当前分支上分出来一个branch

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    git checkout -b ISSUE-110 master
    // change something
    git commit -a -m "Bumped version number to 2.0.1"
    //fix bug
    git commit -m "Fixed ISSUE-110 problem"
    git checkout master
    git merge --no-ff ISSUE-110
    git tag -a 2.0.1
    git checkout develop
    git merge --no-ff ISSUE-110
    git branch -d ISSUE-110
  8. 查看分支关系 git log –graph –decorate –oneline –simplify-by-decoration –all

  9. 退出git log方法 英文字母Q

堆栈bug引起的反思

发表于 2019-01-15

背景

项目开发中程序运行一段时间后逻辑异常。各种排查,各种加printf。最后定位是vsprintf函数被执行后引起了改变了代码中的某全局变量。胡乱配置,修改一通,无果。最后请教技术大牛,指点迷津堆栈搞大

搞大堆栈

使用的单片机是STM32,在startup_stm32f10x_hd.s文件中有如下配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Stack_Size      EQU     0x00000800

AREA STACK, NOINIT, READWRITE, ALIGN=3
Stack_Mem SPACE Stack_Size
__initial_sp

; <h> Heap Configuration
; <o> Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
; </h>

Heap_Size EQU 0x00000400

AREA HEAP, NOINIT, READWRITE, ALIGN=3
__heap_base
Heap_Mem SPACE Heap_Size
__heap_limit

可以发现stack空间是1K, Heap是512字节自然不大。分别进行修改:Heap->1K 仍然错误,之后又修改Stack->2K测试通过。

堆栈对数据破坏的隐蔽性

如何发现堆栈引起的错误,想到的有

  • if语句判断变量时应该列举每一种情况,不支持的进行打印或告警,基本发现变量被异常修改;
  • 单片机代码进来避免深层调用,避免局部变量过大
  • 适当加大堆栈空间

验证发现:后两种都可以解决遇到的问题

NXP(freescale) USBDM for HS08 and HS12

发表于 2019-01-04

项目需要买了1个USBDM仿真器,但是没有说明IO功能,问了淘宝店家后特记录备忘。

序号功能序号功能
1BKGD2GND
3BKGD4RST
5NC6VCC

taobao

激活win10

发表于 2019-01-04

莫名的提升需要激活

自从自动升级到win10系统后,本来使用良好的,可近日开始自动弹出提示过期需激活之类的窗口。本来想不管继续使用的,可是每天提示不是办法。所以就尝试解决,经过一些处理,找到了很简单的方法,特记录如下。

相关密钥

Win10家庭版密钥:

  • 家庭版:TX9XD-98N7V-6WMQ6-BX7FG-H8Q99
  • Core 家庭版:YTMG3-N6DKC-DKB77-7M9GH-8HVX7
  • CoreSingleLanguage单语言win1064家庭版激活密钥:BT79Q-G7N6G-PGBYW-4YWX6-6F4BT
  • CoreCountrySpecific激活64位win10特定国家家庭版:N2434-X9D7W-8PF6X-8DV9T-8TYMD
  • Professional64位系统win10激活码(家庭版):TX9XD-98N7V-6WMQ6-BX7FG-H8Q99
  • Win10家庭版N:3KHY7-WNT83-DGQKR-F7HPR-844BM
  • Win10单语音家庭版:7HNRX-D7KGG-3K4RQ-4WPJ4-YTDFH
  • Win10特殊国家家庭版:PVMJN-6DFY6-9CCP6-7BKTT-D3WVR

  • 专业版:W269N-WFGWX-YVC9B-4J6C9-T83GX

  • 企业版:NPPR9-FWDCX-D2C8J-H872K-2YT43
  • 教育版:NW6C2-QMPVW-D7KKK-3GKT6-VCFB2
  • 专业版N:MH37W-N47XK-V7XM9-C7227-GCQG9
  • 企业版N:DPH2V-TTNVB-4X9Q3-TJR4H-KHJW4
  • 教育版N:2WH4N-8QGBV-H22JP-CT43Q-MDWWJ
  • 企业版LSTB:WNMTR-4C88C-JK8YV-HQ7T2-76DF9
  • 企业版LSTB N:2F77B-TNFGY-69QQF-B8YKP-D69TJ

密钥选择

当前电脑装的是win10单语言版,所以选择密钥为BT79Q-G7N6G-PGBYW-4YWX6-6F4BT

激活过程

  1. 管理员权限打开命令窗口
  2. 输入slmgr.vbs /upk卸载密钥,弹出窗口显示已成功卸载了产品密钥
  3. 输入slmgr /ipk BT79Q-G7N6G-PGBYW-4YWX6-6F4BT安装密钥,提示成功的安装了产品密钥
  4. 输入slmgr /skms zh.us.to弹出窗口密钥管理服务计算机名成功的设置为zh.us.to
  5. 输入slmgr /ato,弹出窗口提示成功的激活了产品

BeyondStudio develop ide

发表于 2018-12-13

介绍

BeyondStudio for NXP IDE(JN-SW-4141)是NXP的JN516X系列无线微控制器的开发平台。本工具是支持JN516X系列芯片的软件开发包和开发工具链合集,需要先安装,占用约700MB空间。
JN516x SDK需要第二步安装,用于支持不同的网络协议。

安装

  • JN-UG-3098下载
  • JN-SW-4141下载
  • JN-SW-4170下载
  • JN-SW-4170 V1840下载i7nq
  • JN-SW-4163下载
  • JN-SW-4168下载 4suq

根据手册介绍:

  1. BeyondStudio for NXP需要先安装: JN-SW-4141
  2. SDK需要后续安装: JN-SW-4170/4168

app.zpscfg

app.zpscfg如何打开呢?其实JN-UG-3098 Beyond Studio for NXP文件中已经进行了详细描述。 文件的1.2.3Installing the ZigBee Plug-ins章节有着详细的描述。 需要在eclipse环境下安装2个插件分别是ZPS Configuration Editor和JenOS Configuration Editor, 具体请参考文档JN-UG-3098

工程导入

异常处理中的2.Project Directory

其他问题参考

BeyondStudio Nxp IDE Note

SIM868通信测试

发表于 2018-11-29

移动状态

测试条件

  • 兰州-郑州高铁列车
  • SIM868模块
  • 移动卡
  • mqtt

测试结果

  • 建立网络连接后可在较大范围内(超过单基站覆盖范围)不掉线保持数据通信
  • 数据延迟情况
发送数据长度发送延迟
字节秒
5001-1.5
10003-4
  • 移动状态联网比较困难,但是可在站台联网成功,之后保持较长距离和时间可持续通信

程序改进

使用AT+IPQSEND

通信情况改善很多,测试中最高达到2kB/s,测试为静态市内测试,直接给服务器发数据,没经过mqtt.

bug

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
mqtt init do it.
[12:04:09.044] task_mqtt.c [user_msg_proc] rxdata from TASK 1,len =13,msg_p=0x0
[12:04:09.044] cmdType = 0
[12:04:09.044] mqtt_connect.
[12:04:09.044]
[12:04:09.044] ---> try to connect mqtt server:gxd729
[12:04:09.044]
[12:04:09.044] mqtt->keepalive = 0x3c
[12:04:09.044] mqtt->clientid = gxd729
[12:04:09.044] INFO: the at cmd func[0]'s range is 46-47
[12:04:09.049] INFO: funFirst:46 funLast:47
[12:04:09.049] simcom data send result = 1
[12:04:09.049] app_send_data_to_server return ok, send....
[12:04:09.049] mqttc is connecting to 114.67.229.68:3881...
[12:04:09.049]
[12:04:09.049] 1. WrToModem:AT+CIPSEND=0,124
[12:04:09.143]
[12:04:09.143] len=4,ReFrModem:
[12:04:09.147] >
[12:04:09.147] at+cipsend? return >
[12:04:09.147] at+cipsend? return 1
[12:04:09.147] INFO: callback return 46,1
[12:04:09.147] 1. WrToModem:z
[12:04:09.255]
[12:04:10.693] sec:340
[12:04:10.693] tcp=1,mqtt=0,tcp_tx=0
[12:04:10.693]
[12:04:15.680] sec:345
[12:04:15.680] tcp=1,mqtt=0,tcp_tx=0
[12:04:15.680] len=14,ReFrModem:
[12:04:15.799] 0, SEND OK
[12:04:15.799]
[12:04:15.799] send data done,rx SEND OK
[12:04:15.799] send data, return 4
[12:04:15.799] INFO: callback return 47,4
[12:04:15.799]
[12:04:20.669] sec:350
[12:04:20.669] tcp=1,mqtt=0,tcp_tx=1
[12:04:20.669]
[12:04:22.401] len=13,ReFrModem:
[12:04:22.401] 0, CLOSED
[12:04:22.401]
[12:04:22.401] mqtt_disconnect :gxd729
[12:04:22.401]
[12:04:22.401] send data err tcp disconnected
[12:04:22.401] app_send_data_to_server return err
[12:04:22.401] mqttc is disconnected.
[12:04:22.401]
[12:04:22.401] connect 0 lose.
[12:04:22.401] INFO: the at cmd func[0]'s range is 48-7
[12:04:22.401] INFO: funFirst:48 funLast:7
[12:04:22.401] simcom_gsm_connect_server start.
[12:04:22.401] 1. WrToModem:AT+CIPSHUT

HEXO+NODE10.13+GULP4.0博客搭建过程中的坑

发表于 2018-11-28 | 分类于 hexo,gulp

前情

个人的静态日志网页有些日子没更新了。这两天想分享些东西上来。结果因为之前在七牛上的图床不让免费使用了,所以博客的头像也挂了,很是不爽。然后就有了下面的折腾。

尝鲜

奔着尝鲜的念头更新了node,直接到10.13.0版本,在之后的编写更新过程中无意执行了npm audit fix --force,结果把很多依赖给升级了,之后就悲剧了,本地可以执行hexo server,使用travis自动发布时却总是在gulp处出错,本地也试了确实压缩出问题,然后就是一顿不服,一顿尝试。最终在如下网站中获取帮助得以解决,为帮助其他踩坑者特写此篇。

阅读全文 »

CodeWarrior开发环境搭建与程序下载

发表于 2018-11-27

下载

CodeWarriorV6.3版本为32位版本,需要安装在32位机器或虚拟机上,自己是装在虚拟机上的。
下载地址:CodeWarriorV6.3, 提取码:7um4 压缩包中包含4给文件分别是:

  1. CW_MCU_V6.3–S08开发软件 - 软件安装包
  2. MC9S08AC60.pdf - 芯片手册
  3. USBDM_4_10_6_80_Win.msi - Flash编程工具
  4. USBDM_Drivers_1_2_0_WinXP_x32.msi - 编程器驱动

当然除此之外还需要对开发工具进行破解:

  • 把提供的license文件放到C:\Program Files\Freescale\CodeWarrior for Microcontrollers V6.3目录下

注意: 安装包是32位的,建议虚拟机安装XP,不要折腾去找64位版本。应该是仿真器驱动只能是xp-32位 xp镜像下载,提取码:br5w

安装

需要依次安装软件安装包,编程工具和编程器驱动

打开工程

代码下载

从gitlab下载cloud_coffee_S9S08DZ60分支代码

打开工程

直接运行上一步下载的代码文件中的”WSD_010”,即可打开文件

编译与下载

  1. 快捷键“F7”可直接编译或单击工具栏”make”按钮进行编译
  2. 如需将新的程序下载到单片机需要单击工具栏的”debug”按钮

仿真器与板相连

仿真器与板之间只需要4根线即可烧录程序,分别是VCC,GND,RST,BKG
板子上的IO描述在背面,仿真器上的IO描述在正面,对应连接即可

只下载步骤

安装如下工具

  1. USBDM_4_10_6_80_Win.msi - Flash编程工具
  2. USBDM_Drivers_1_2_0_WinXP_x32.msi - 编程器驱动
  • 开始->USBDM 4.10.6.80->HS08 Programmer
  • 连接仿真器
  • Interface->Detect连接仿真器
  • Target->LoadHexFiles,加载二进制文件
  • Target->Device Selection选择AC-MC9S08AC60
  • 连接目标板
  • Target->Device Selection->Detect Chip

zigbee-tree-network-space

发表于 2017-12-26 | 分类于 zigbee

参考:Zigbee Tree Routing - How It Works and Why It Sucks

研究发现博文中Cm!=Rm情况下的公式存在问题。

描述树形网络可用3个重要参数: Dm:最大网络深度 Cm:最大子节点数量 Rm:子节点中最大路由数量, Cm>=Rm

先看简单例子: Dm = 2, Cm = 3, Rm = 3 Dm Cm=Rm 0 3^0=1 1 3^1=3 2 3^2=9 可以看出网络规模等于:
sum(Rm^n); n={0..Dm}

但是如果Cm>Rm,例如:

1
2
3
4
5
6
7
8
9
Dm = 2, Cm = 7, Rm = 3
0
1 2 3 4 5 13 21
6 7 8 9 10 11 12 14 15 16 17 18 19 20 22 23 24 25 26 27 28

Dm Rm Cm-Rm=4
0 3^0=1 0
1 3^1=3 4*3^0=4
2 3^2=9 4*3^1=12

可以看出网络规模为1 + 3 + 4 + 9 + 12=29等于:

sum(Rm^n); n={0..Dm} + sum((Cm-Rm)*Rm^n); n={0..Dm-1} 整理后:

1+sum(Cm*Rm^n); n={0..Dm-1}

Dm = 2, Cm = 7, Rm = 3带入公式; 1 + 71 + 73 = 29

RF4CE_Remote eState

发表于 2017-07-24

eState

123…5
xu.bovey

xu.bovey

点点 - 滴滴

49 日志
18 分类
27 标签
RSS
© 2019 xu.bovey
由 Hexo 强力驱动
主题 - NexT.Pisces