- 博客(38)
- 收藏
- 关注
原创 backtrace in gdb
用法: Backtraces 多线程用法: Debugging Programs with Multiple Threads call stack相关: FP寄存器及frame pointer介绍 ARM: Call stack generation with no frame pointer
2016-12-12 10:48:59 529
原创 git杂记
merge merge合并的是改动,而不是内容 merge合并的是从选中的提交到base提交这一段的所有改动 cherry_pick可以只合并一个提交
2016-12-08 14:58:32 370
原创 gdb + openocd 调试嵌入式软件
1.openocd是硬件层次的调试,gdb是源码层次的调试。2.在gdb中可以使用monitor发送openocd的命令,例如monitor reset;halt3.JTAG有4种复位方式: There are many kinds of reset possible through JTAG, but they may not all work with a given board an
2016-12-06 23:16:22 8310
原创 gdb
作用: 流程控制 - 单步,断点,全速 环境查看 - 变量,内存文档: GDB十分钟教程 100-gdb-tips (这个github上有很多实用的文档,例如100-gcc-tips,可以看一下)
2016-12-03 23:02:52 412
原创 macbook pro问题
现象:force touch突然没有力反馈了。 解决方法:重置SMC click here 原因: System Manager Controller(系统管理控制器)控制着电脑内的很多硬件模块,如背光灯,按键检测,触控板管理等。 2015款的RMBP使用的是TI的Stellaris LM4FS1EH芯片作为SMC。 相关链接: Mac无法开机怎么办?苹果Mac重置SMC方法详细介绍 重置
2016-11-23 10:25:07 573
原创 linux上使用openocd的问题
32-bit的openocd在64-bit OS上使用时会报错: Error while loading shared libraries: libftdi.so.1: cannot open shared object file: No such file or directory解决方法: 安装32-bit的libftdi库 $ sudo apt-get install libf
2016-11-22 14:00:51 1872
转载 MicroPython - 硬件
在MicroPython的源码中,已经包含了NUCLEO-F411RE开发板,只要编译一下,将固件下载进去就可以运行。 STM32F411是有USB功能的,但是NUCLEO-F411RE开发板没有预留USB接口。这样就无法使用PYBFlash磁盘,很多驱动程序就无法直接复制进去。还好它将USB的GPIO引出来了,我们通过一个microUSB转接板就可以使用USB功能。具体接线如下: PA12 -
2016-10-18 17:31:18 1200
原创 MicroPython - 问题整理
Creating Pyb Modules Is 32kByte enough for micropyhton? Wanted: Porting guide / developer guide
2016-10-18 09:13:32 1786
原创 MicroPython - 下载
使用NULCEO_F411RE,根据文档说明,有3种下载方式: 1. DFU:makeBOARD=NULCEOF411REdeploy2.ST−LINK: make BOARD=NULCEO_F411RE deploy 2. ST-LINK: make BOARD=NULCEO_F411RE deploy-stlink 3. OPENOCD:$ make BOARD=NULCEO_F411R
2016-10-17 11:16:18 1826 1
原创 What is HEAD in Git?
What is HEAD in Git? Why git can’t do hard/soft resets by path?
2016-10-14 11:49:42 225
原创 netif的linkoutput和output
linkoutput实际指向low_level_output,由IP和ARP层调用, output实际指向etharp_output,由IP层调用 它们功能上的区别是:linkoutput是发送ETH包,output是发送IP包。 所以它们本质上的区别是,linkoutput是在已知目的MAC地址时调用,而output则相反。
2016-10-09 17:17:24 2280
原创 LwIP代码目录结构
所有的内核头文件都放在include目录下,而需要port的部分则由用户自己组织。FreeRTOS也是这样,这样的好处是便于管理和使用。
2016-09-29 16:34:15 1166
原创 mbedtls使用笔记
以 mbedtls_ssl_conf 开头的API函数被调用后,还需要调用mbedtls_ssl_setup来使其生效;以 mbedtls_ssl_set 开头的API函数被调用后会立即生效
2016-09-28 16:49:33 5293
原创 wireshark如何分析加密的WIFI数据包
使用wireshark抓到的wifi数据包如果是加密的,就只能显示密文,无法得到真正的数据。 如果知道AP和SSID和key,就可以解密wifi数据包,显示上层协议的数据。 在wireshark中设置如下: Edit -> Preferences -> Protocols -> IEEE802.11 -> Edit。 点击“+”新建一个entry,以我的AP为例,Key type选择wps-
2016-09-28 16:39:40 20686 4
原创 SSL/TLS从入门到庖丁
初次了解: SSL/TLS协议运行机制的概述 图解SSL/TLS协议 进一步了解SSL handshake的过程和细节: 证书的应用之一 —— TCP&SSL通信实例及协议分析(中) SSL握手协议 有关数字证书知识: 那些证书相关的玩意儿(SSL,X.509,PEM,DER,CRT,CER,KEY,CSR,P12等) 官方文档: RFC 5246: The Transport L
2016-09-26 10:11:44 545
原创 LwIP有无操作系统的区别
netif的input是由网卡驱动在收到以太网包后调用 在无操作系统下: netif的input是ethernet_input,里面直接调用LwIP的内核函数来处理以太网包 在有操作系统下: netif的input是tcpip_input,里面仅仅是将收到的数据包封在TCPIP_MSG_INPKT消息内,然后发给LwIP内核线程(tcpip_thread),在LwIP内核线程调用内核函数来处
2016-09-25 20:48:28 2918
原创 LwIP的操作系统模拟层移植
移植操作系统模拟层,本质上就是完成操作系统接口函数的编写:信号量,邮箱,互斥量和线程。 信号量,邮箱和互斥量的操作:new,free,write,read 对于信号量,邮箱,额外四个操作:try_write,try_read,valid,invalid 线程的操作:create
2016-09-25 20:35:01 1083
原创 LwIP和FreeRTOS的头文件冲突问题
LwIP和FreeRTOS都有一个timer.h头文件,可能会造编译错误(没有找到正确的头文件),lwip的作者似乎已经考虑到了这一点,在lwip的源码中,都是以#include “lwip/timer.h”的方式来包含头文件,这样就可以找到正确的头文件了
2016-09-25 15:05:39 1046
原创 NETIF_FLAG_LINK_UP的意义和作用
NETIF_FLAG_LINK_UP字段主要由DHCP和IP模块使用: DHCP:在dhcp_start中,判断网卡是否link up来决定是否直接发discovery包 IP:在ip_route中,判断网卡是否link up来选择一个有效的网卡发IP包时会判断link up,收到IP包不用判断,因为既然能收到IP包,那就说明网卡一定是link up的
2016-09-19 10:07:58 1976
原创 LwIP调试输出
LwIP调试输出有3个开关: LWIP_DBG_ON:总开关 LWIP_DBG_TYPES_ON:类型开关 LWIP_DBG_MIN_LEVEL:等级开关 LWIP_DBG_TYPES_ON和LWIP_DBG_MIN_LEVEL是在lwipopt.h由用户定义的 一个调试类型的debug值可以是这样形式定义的: LWIP_DBG_ON | LWIP_DBG_TYPES_ON | LWIP
2016-09-14 23:06:12 3737
原创 dhcp_start
dhcp_start会检查当前网卡的链路是否active,若是,则直接调用dhcp_discovery,否则,设置dhcp的state为INIT。 用户应该在在网卡active后调用netif_set_link_up,netif_set_link_up判断网卡是否设置了DHCP的flag来调用dhcp_network_changed,dhcp_network_changed内判断网卡当前的DHCP
2016-09-14 09:45:35 1557
原创 netif_set_link_up和netif_set_up的区别
netif_set_up是使能网卡,设置NETIF_FLAG_UP标志位,必须在网卡被使用前用户来调用 netif_set_link_up是当网卡链路层active时由网卡驱动来设置的,如,station关联上AP后就应该调用netif_set_link_up
2016-09-14 09:36:34 5822
原创 NETIF_STATUS_CALLBACK何时会被调用
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl
2016-09-13 17:54:16 1509
转载 欢迎使用CSDN-markdown编辑器
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl
2016-07-10 18:20:27 222
转载 Make 命令教程
原文链接:http://www.ruanyifeng.com/blog/2015/02/make.htmlMake 命令教程作者: 阮一峰日期: 2015年2月20日代码变成可执行文件,叫做编译(compile);先编译这个,还是先编译那个(即编译的安排),叫做构建(build)。Make是最常用的构建工具,诞生于1977年,主要用于C语言的项目。但是实
2016-07-08 14:23:33 376
转载 MAC和PHY的区别
转载地址:http://www.cnblogs.com/feitian629/archive/2013/01/25/2876857.html一块以太网网卡包括OSI(开方系统互联)模型的两个层。物理层和数据链路层。物理层定义了数据传送与接收所需要的电与光信号、线路状态、时钟基准、数据编码和电路等,并向数据链路层设备提供标准接口。数据链路层则提供寻址机构、数据帧的构建、数据差错检查、传送控制
2015-03-26 22:33:25 608
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人