- 博客(296)
- 资源 (27)
- 收藏
- 关注
原创 STM8的bootloader中断向量重定义
网上看了很多例子,也不甚明白都是怎么解决的,下面把自己调试的过程记录一下我也使用到了下面这种办法处理__root const long reintvec[32]@".intvec"={ 0x82008080,0x8200a004,0x8200a008,0x8200a00c, 0x8200a010,0x8200a014,0x8200a018,0x8200a01c, 0x8200a020,0x8200a024,0x8200a028,0x8200a02c, ...
2021-07-16 11:24:40
790
原创 Lin2.1通信协议入门解析_笔记
概述本文对Lin的特征,物理层,协议层和应用层进行说明。1.Lin简介1.1Lin通信节点主要有物理层,协议层,应用层三大部分。
2021-05-30 12:47:06
893
原创 win10下建立linux编译环境
1、打开windows控制面板程序-->程序和功能(启用或关闭windows功能),弹出框选中最下面的适用于linux的windows子系统,重启2、在Microsoft Store搜Linux,选中ubuntu,下载安装打开ubuntu系统sudo apt updatesudo apt install build-essential查看gcc --version是否安装成功cd /mnt使用ls可以看到下面挂着c、d、e、f的盘符选择你想存放的盘或者目录.
2021-04-13 21:40:33
519
原创 RT-Thread控制台串口号切换到uart2方法
RT-Thread:4.0.3由于默认的串口1使用起来不是很方便,研究下如何切换到串口2,记录如下1、修改配置文件rtconfig.h将#define RT_CONSOLE_DEVICE_NAME "uart1"改成#define RT_CONSOLE_DEVICE_NAME "uart2"注释掉下面一行//#define BSP_USING_UART1改成#define BSP_USING_UART22、修改stm32f4xx_hal_msp.c文件..
2021-04-10 22:59:49
1409
原创 探索者STM32F407不能复位
购买的正点原子的探索者STM32F407的开发板,接上usb转串口的线到PC看打印然后不管是软复位还是硬复位都失效把usb转串口线拔下,用LED设置亮灭来识别复位成功,每次都能成功后来看到正点原子的资料,里面有讲到推荐使用的一款串口助手,叫XCOM,用这个软件就不存在软硬件复位不成功的现象了软件复位使用下面两行代码__set_FAULTMASK(1); // 关闭所有中断NVIC_SystemReset(); // 复位在此做个记录,方便遇到同样问题的攻城狮查找问题..
2020-09-28 18:34:21
1472
转载 MODBUS-功能码详解
转自https://blog.csdn.net/xiaoluoshan/article/details/73233955 ——————————————————————————————————————————————————————————————————————————————————————————————————————————————...
2020-09-28 18:13:42
4463
转载 J1939协议之通俗易懂----简介
J1939简介J1939协议简介J1939协议是由美国汽车工程师协会(SAE)(SAE协会简介)定义的一组标准。J1939标准用于卡车、公共汽车和移动液压等重型车辆。在许多方面,J1939标准类似于旧版J1708和J1587标准,但J1939标准协议建立在CAN(控制器区域网络,ISO11898)上。物理层(J1939/11)描述了针对客车的电气接口。数据链路层描述了构建报文、访问总线以及诊断传送故障的规则。应用层(J1939/71和J1939/73)定义了在网络中传送的每条报文的具体数据。.
2020-09-09 22:33:08
10810
1
转载 KEAZ128 时钟配置
本文介绍如何用KEAZ128评估版(FRDM-KEAZ128Q80)配置为40MHz core freqency/20MHz bus frequency。1.了解器件时钟特性参见NXP KEA128 DS(S9KEA128P80M48SF0.pdf),可以知道这个MCU最高支持48MHz core frequency.从KEA128 RM(KEA128RM (中文).pdf),可以知道KEA128各个时钟名称及频率等特性。这里需要注意,设置的配置内核时钟频率(40MHz)不能超过最...
2020-09-09 13:51:42
2139
1
转载 STM32之CAN ---CAN ID过滤器分析
1 前言 在CAN协议里,报文的标识符不代表节点的地址,而是跟报文的内容相关的。因此,发送者以广播的形式把报文发送给所有的接收者。节点在接收报文时,根据标识符(CAN ID)的值决定软件是否需要该报文;如果需要,就拷贝到SRAM里;如果不需要,报文就被丢弃且无需软件的干预。 为满足这一需求,bxCAN为应用程序提供了14个位宽可变的、可配置的过滤器组(13~0),以便只接收那些软件需要的报文。硬件过滤的做法节省了CPU开销,否则就必须由软件过滤从而占用一定的CPU开销。...
2020-08-25 23:02:46
1396
转载 STM32学习笔记:读写内部Flash(介绍+附代码)
一、介绍首先我们需要了解一个内存映射:stm32的flash地址起始于0x0800 0000,结束地址是0x0800 0000加上芯片实际的flash大小,不同的芯片flash大小不同。RAM起始地址是0x2000 0000,结束地址是0x2000 0000加上芯片的RAM大小。不同的芯片RAM也不同。Flash中的内容一般用来存储代码和一些定义为const的数据,断电不丢失...
2020-05-06 22:17:56
1520
转载 STM32中GPIO的8种工作模式
有关推挽输出、开漏输出、复用开漏输出、复用推挽输出以及上拉输入、下拉输入、浮空输入、模拟输入的区别转载自:http://bbs.ednchina.com/BLOG_ARTICLE_2082651.HTM最近在看数据手册的时候,发现在Cortex-M3里,对于GPIO的配置种类有8种之多:(1)GPIO_Mode_AIN模拟输入(2)GPIO_Mode_IN_FLOATI...
2020-03-31 13:43:39
404
转载 Linux编程之UDP SOCKET全攻略
这篇文章将对linux下udp socket编程重要知识点进行总结,无论是开发人员应知应会的,还是说udp socket的一些偏僻知识点,本文都会讲到。尽可能做到,读了一篇文章之后,大家对udp socket有一个比较全面的认识。本文分为两个专题,第一个是常用的upd socket框架,第二个是一些udp socket并不常用但又相当重要的知识点。一、基本的udp socket编程1...
2019-11-04 17:26:45
241
原创 ucosIII 消息队列使用注意事项
最近在调试ucosIII的消息队列,发现一些需要注意的地方。1、当消息挂起队列中无任务被挂起时,被提交的消息会存储在消息存储队列中直到该队列所允许的上限后,被提交的消息将不能再存储进该消息存储队列中,此时,欲提交该消息的函数会返回相应的错误代号以告知用户该消息队列存储消息已满,该消息将溢出。2、ucos的消息队列发送时不会进行数据拷贝,只是发送指针。所以只能分别建立发送和...
2019-10-24 21:19:17
1401
原创 ucosIII信号量创建
今天看了下UCOSIII的信号量,说什么分二值信号量和计数信号量,网上也有不少例子,感觉说法都不是太准确,我验证了一下,感觉应该这样理解,创建信号量函数原型如下:void OSSemCreate (OS_SEM *p_sem, CPU_CHAR *p_name, OS_SEM_CTR cnt,...
2019-10-17 21:51:22
571
转载 __attribute__((packed))详解
1. __attribute__ ((packed)) 的作用就是告诉编译器取消结构在编译过程中的优化对齐,按照实际占用字节数进行对齐,是GCC特有的语法。这个功能是跟操作系统没关系,跟编译器有关,gcc编译器不是紧凑模式的,我在windows下,用vc的编译器也不是紧凑的,用tc的编译器就是紧凑的。例如:在TC下:struct my{ char ch; int a;} sizeof(int)...
2019-09-16 21:38:50
754
转载 二值信号量和互斥锁到底有什么区别?
原文链接:https://www.cnblogs.com/codescrew/p/8970514.html在说明之前我先抛出结论:互斥锁和二值信号量在使用上非常相似,但是互斥锁解决了优先级翻转的问题假定我们现在有三个任务,task1,task2,task3,任务优先级task1最高,然后依次降低。我们知道在系统调度的时候当两个任务同时处于就绪态的时候,系统会优先执行优先级高的任...
2019-07-16 14:52:33
356
转载 airkiss技术原理
https://blog.csdn.net/lb5761311/article/details/77945848AirKiss原理分析一、 AirKiss概述AirKiss技术是一种创新性的信息传递技术。通过该技术可以便捷的向一台 与外界没有建立任何一种实质性连接(包括有线、无线、蓝牙、NFC等)的设备传递信息(可以是环境中Wifi的ssid、密码等信息)。AirKiss ...
2019-05-27 10:18:13
1752
转载 C语言指针的初始化和赋值
1、指针的初始化指针初始化时,“=”的右操作数必须为内存中数据的地址,不能够是变量,也不能够直接用整型地址值(可是int*p=0;除外,该语句表示指针为空)。此时,*p仅仅是表示定义的是个指针变量,并没有间接取值的意思。比如:int a = 25;int *ptr = &a;int b[10];int *point = b; int *p = &...
2019-04-16 14:02:17
2189
转载 浅谈void指针的类型转换问题
指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。 (说白了就是地址,32位机子中任何一个指针的长度都是4个字节,因为逻辑地址就占用4字节)以下结果是基于VC++和VS2010的1.C中对指针类型的转换要求很低。但是这将留下一个很大的漏洞int* a=Null; void* b=Null;char* c=Null;c=a; //warning C4133:...
2019-04-15 10:58:05
2091
转载 [RK3399] SDIO 接口 Wifi 驱动流程分析 (AP6354)
https://blog.csdn.net/mmmccc000/article/details/73322637Platform: RockChip OS: Android 6.0 Kernel: 4.4 WiFi/BT/FM 模组: AP6354前面的基本概念搜罗于网络; 后面的驱动流程分析是根据 RockChip 3399 的 Kernel 部分来进行分析的。 基本...
2018-12-04 15:30:42
5304
转载 make 2>&1 | tee log.txt 命令解析
make 2>&1 | tee log.txt命令解析1. make是什么?make是linux下一个非常强大的命令,简单点就是你要编译你的源代码就得靠他了。2. 2>&1是什么意思?0 stdin,1 stdout,2 stderr2>&1应该分成两个部分来看,一个是2>以及另一个是&1,其中2>就是将标准出错重定向到...
2018-09-07 09:23:16
998
1
转载 vim使用:全局搜索并跳转
很多人使用了vim之后,热衷于安装各种各样的插件,折腾的不亦乐乎。但是殊不知vim 本身自带的很多功能也非常的好用,熟练使用他们会使得我们在编程以及解决问题过程中提高不少效率。下面我就介绍第一个好用的技巧。全局搜索vim 命令。先举个栗子:比如我想在当前目录搜索字符串 “test1”。你可以使用grep -R test1 * 这样虽然可以搜索出结果,但是你只能看到这个字符串都在哪个文件哪里包...
2018-08-16 10:51:19
1640
转载 ubuntu 14.04 + vim + ctags + taglist安装与使用
https://blog.csdn.net/yzhang6_10/article/details/68067521 安装ctags,执行如下命令: sudo apt-get install exuberant-ctags注意:也可以使用源码安装 安装taglist,具体步骤如下: 1.下载taglist,具体网址如下:http://www.vim.org/script...
2018-08-16 09:24:32
469
转载 amlogic S905X udpate imge的压缩和解压
使用的板子是khadas VIMamlogic的升级和烧写有多种方式, 常见的是USB烧写和SD卡烧写. USB烧写的流程其实是解压update.img中的文件,然后push到RAM中运行. 然后再push文件到ram中烧写. 这个和Freescale的MFGTools类似. update.img的生成生成update.img的命令如下,可以看到不同文件在update.img中被包...
2018-08-03 22:48:54
3325
1
转载 iPerf图形化工具Jperf图文使用教程
在前文介绍iPerf时,我们就提到了Jperf这款软件,因为iPerf没有图形界面,操作起来不是太方便,而Jperf则是将iPerf命令行图形化的JAVA程序,因此Jperf从某种程度上来说更受大家喜爱。 软件名称: Jperf 软件版本: 2.0 软件大小: 2.6MB 软件授权: 免费版本 适用平台: WinXP/Vista/7/8/10...
2018-07-20 16:01:50
5176
转载 静态编译与动态编译的区别
静态编译与动态编译的区别 动态编译的可执行文件需要附带一个的动态链接库,在执行时,需要调用其对应动态链接库中的命令。所以其优点一方面是缩小了执行文件本身的体积,另一方面是加快了编译速度,节省了系统资源。缺点一是哪怕是很简单的程序,只用到了链接库中的一两条命令,也需要附带一个相对庞大的链接库;二是如果其他计算机上没有安装对应的运行库,则用动态编译的可执行文件就不能运行。 静态编译就是编译...
2018-07-19 15:28:07
1851
转载 Linux wext和nl80211接口简介
在分析wpa_supplicant软件linux版本下无线驱动事件和无线驱动配置代码之前,先简单介绍下linux无线驱动接口的实现技术和发展情况。 Linux无线驱动接口有两种标准接口,wext(Wireless Extensions无线扩展接口)和nl80211接口。 在linux-2.6.18版本之前,linux内核代码中并没有提供无线驱动接口以及无线驱动协议栈。wext是...
2018-07-19 13:57:44
2078
1
转载 linux Wireless基础知识(cfg80211 mac80211 nl80211)
1. 基本概念 • cfg80211: 用于对无线设备进行配置管理。与FullMAC, mac80211和nl80211一起工作。(Kernel态) • mac80211: 是一个driver开发者可用于为SoftMAC无线设备写驱动的框架 (Kernel态)。 • nl80211: 用于对无线设备进行配置管理,它是一个基本Netlink的用户态协议(User态)...
2018-07-19 13:56:23
657
转载 ubuntu下sublime text3安装及中文偏下问题
https://blog.csdn.net/qq_19175749/article/details/78917753 1.安装方法1)使用ppa安装sudo add-apt-repository ppa:webupd8team/sublime-text-3sudo apt-get updatesudo apt-get install sublime-text-inst...
2018-07-13 10:41:03
967
转载 Ubuntu16.04下搭建开发环境及编译tiny4412 Android系统
http://blog.csdn.net/column/details/15111.html1.安装ssh服务器(可通过网络远程登录系统,如putty、xshell)sudo apt-get install openssh-server2.安装ftp服务器(默认已安装) windows 可使用leapFTP工具登录sudo apt-get install vsftpd需配置ftp服务(修改/et...
2018-06-25 15:30:50
1723
1
原创 rtl8188f wifi固件编译注意事项
内核配置:(否则可能出现iwconfig wlan0 无返回)上面有关于cfg80211报错说明是cfg80211的内核相关配置没有配置上如下配置: --- Networking support -*- Wireless ---> <*> cfg80...
2018-06-25 14:59:01
1684
转载 Ubuntu14.04下安装配置openJDK1.7
https://blog.csdn.net/u013403478/article/details/51012113在Ubuntu14.04下安装配置openJDK1.7,其实很简单。1、Ctrl+Alt+T快捷键打开terminal(终端)2、在终端中输入 下载jdk: sudo apt-get install openjdk-7-jdk 下载完成后,再执行下载j...
2018-06-25 10:52:24
1422
转载 PID控制算法的C语言实现一 PID算法原理
转自 https://blog.csdn.net/u010312937/article/details/53363831PID控制算法的C语言实现一 PID算法原理 最近两天在考虑一般控制算法的C语言实现问题,发现网络上尚没有一套完整的比较体系的讲解。于是总结了几天,整理一套思路分享给大家。 在工业应用中PID及其衍生算法是应用最广泛的算法之一,是当之无愧的万能算法,如果能够熟练掌握PID...
2018-05-08 14:19:35
8331
1
转载 Linux 从虚拟地址到物理地址
http://blog.chinaunix.net/uid-24774106-id-3427836.html 我们都知道,动态共享库里面的函数的共享的,这也是动态库的优势所在,就是节省内存。C 编译出来的可执行文件几乎都会用到libc的库,假如没有这个共享的技术,每个可执行文件都要占一份libc库的内存,这将是极大的内存浪费。 可是一直没搞明白,怎么样才能证明共享库里面函数的地址在物理内存层面是...
2018-04-19 15:25:39
463
原创 dlib和opencv安装
网上看到不少说法,说是安装dlib前需要先安装cmake和boost,还说需要安装VS2015支持最新的c编译器自己试验了一把好像并不需要这么复杂。电脑配置64位WIN7,安装的python3.6(64bit),也安装了pycharm1、安装opencv比较简单,失败的话多试几次pip install --upgrade setuptoolspip install numpy Matplotlib...
2018-03-15 09:49:39
1576
1
原创 Python开发工具之Sublime Text 3基于文件创建项目
说明:本地windows系统本地已安装Sublime Text 3;本地已创建python项目文件,如test,并在该文件夹下创建了虚拟环境venv(test/venv)。1.创建项目依次鼠标左键点击Project>Add Folder to Project...,选择test文件夹:2.保存项目依次鼠标左键点击Project>Save Project as ...,输入项目名test...
2018-03-14 15:40:39
1161
STM32F4的I2C读取BMP085模块的温度和气压源码
2013-09-29
linux那些事儿(EHCI Block SCSI Sysfs PCI USB U 盘 UHCI Hub)
2010-09-02
Understanding Linux Network Internals.chm 英文版
2010-09-02
Essential.Linux.Device.Drivers 英文版
2010-07-29
使用ADS1.2 进行嵌入式软件开发
2010-03-19
嵌入式ARM9-2440实战手册.pdf
2010-03-18
unix环境高级编程(中文版).part2.rar
2008-07-18
unix环境高级编程(中文版).part1.rar
2008-07-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人