![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
嵌入式
文章平均质量分 63
会飞行的小蜗牛
这个作者很懒,什么都没留下…
展开
-
FreeRTOS 临界区总结
当一名嵌入式开发人员从裸机开发切换到 基于 FreeRTOS 的开发后就要注意 中断,资源竞争等等问题了。 下面,总结一下 FreeRTOS 临界区的知识及用法: 1. 应该程序使用临界区 1.1 深入剖析的方法:taskENTER_CRITICAL() -> portENTER_CR原创 2017-08-31 18:40:51 · 12407 阅读 · 1 评论 -
linux 内存清理/释放命令
1.清理前内存使用情况 free -m2.开始清理 echo 1 > /proc/sys/vm/drop_caches3.清理后内存使用情况 free -m4.完成!查看内存条数命令:dmidecode | grep -A16 "Memory Device$"原创 2016-07-15 10:18:37 · 2740 阅读 · 0 评论 -
VC++调用libcurl的VC库使用详解
1、下载官方库。地址:http://curl.haxx.se/download.html#Win32 下载 Win32 - MSVC,下面有两个版本的库,一个是带ssl的,一个是不带ssl的。不带ssl的:http://curl.haxx.se/download/libcurl-7.18.0-win32-msvc.zip带ssl的:http://curl.h原创 2016-07-15 09:52:26 · 2557 阅读 · 0 评论 -
linux 根据进程名查看其占用的端口
有时候需要查看一个进程占用了那个端口,但是只知道进程大致的名称,比如要查看hadoop的namenode在哪个端口上运行,以便在eclipse中连接。一种方法如下,可能比较搓,请大牛指教!首先用ps命令查看进程的id:[html] view plain copy$ ps -ef | grep Name 其中每一行(很长的转载 2016-07-14 19:30:28 · 331 阅读 · 0 评论 -
linux命令ps aux|grep xxx详解
要对进程进行监测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程, 而ps命令(Process Status)就是最基本同时也是非常强大的进程查看命令.使用该命令 可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵尸、哪些进程占用了过多的资源等等.总之大部分信息都是可以通过执行该命令得到的. ps 为我们提供了进程的一次性的查看,它所提供的查看结转载 2016-07-14 19:22:41 · 1187 阅读 · 0 评论 -
linux下core文件调试方法
在程序不寻常退出时,内核会在当前工作目录下生成一个core文件(是一个内存映像,同时加上调试信息)。使用gdb来查看core文件,可以指示出导致程序出错的代码所在文件和行数。1.core文件的生成开关和大小限制 (1)使用ulimit -c命令可查看core文件的生成开关。若结果为0,则表示关闭了此功能,不会生成core文件。 (2)使用ulimit -c filesize命令,可转载 2016-07-11 15:56:48 · 381 阅读 · 0 评论 -
字节对齐与内存访问
关于字节对齐,最早是在《高质量程序设计》中看到的,当时明白一点,就是因为定义的数据字节大小不一(1字节,2字节,4字节,8字节),在内存中可能会有字节对齐的操作,就是数据在内存中的排放,不一定是连续的。因此也产生了一个疑问,就是对于数组而言,特别是结构体,如果不连续排放了。那么,当我们将结构体,当做连续的一段内存来访问时,是不是会造成错误呢?当时,虽然有疑惑,但是一直没转载 2016-03-20 21:19:42 · 4802 阅读 · 0 评论 -
一次内存错误调试总结(平台Cortex-M3)
芯片:STM32F103CBT6IDE:Keil调试器:J-Link操作系统:uCOS从一开始怀疑硬件问题,到最后定义到内存错误的思路,有些思维定式。首先从最开始发现程序有一个地方通不过时,通过断点的逐步调试,很快发现了是哪里,导致程序没有运行过去。但是这里没有再继续缩小断点的范围,从而漏掉了在最短的时间内,将问题转载 2016-03-20 21:06:20 · 938 阅读 · 0 评论 -
晶振起振问题分析
晶振起振问题,晶振的负载电容匹配可能不合适,导致晶振不起振。现象:系统工作偶尔不正常。最近在一个项目中,遇到一个很奇怪的问题。系统偶尔会不工作。而且跑了四个周的系统,中间出现过一次。后来不知道怎么恢复了。当今天再次遇到,感觉这种情况,肯定是哪里有问题,不可能是运气使然。这里将问题最终归结到晶振上,是因为问题的可重复性。转载 2016-03-20 14:07:51 · 2354 阅读 · 0 评论 -
开发工具带来的进度影响
前几天,在以前的一个修改了一些电路的板子上编写一段新的代码的时候,发现以前正常运行的一段程序,竟然不能正常运行了。现象很像程序死掉了,卡在某处没有运行。但是,在以前的没有修改过的板子上运行一切正常。于是检查了板子上修改的部分,发现并没有哪些地方会影响到单片机的正常工作,甚至于让单片机死机。而外部电路的修改,也并没有太多。实际测量发现,之前单片机IO口为高电平,板子修改后成为了低转载 2016-03-20 13:55:10 · 390 阅读 · 0 评论 -
关于串口复用造成的意外及总结
前两天测试人员发现,在测试运行的产品中,有两个运行不正常。于是对出现异常的产品进行了重点检测。开始怀疑是产品中的无线模块信号不好,造成一段时间后就连接断掉。于是使用了一个测试好用的无线模块,测试发现测试产品运行效果和原来一样,还是比较异常。而且观察产品的数据通信指示灯,感觉闪灯很不正常。没有数据交互的情况下,485通讯指示灯经常闪烁。而且无线模块通讯指示灯反而长时间没有点亮。为了验转载 2016-03-20 13:40:29 · 1128 阅读 · 0 评论 -
硬件改版引起的I2C异常
最近公司有一款新版硬件,在测试时发现原有的I2C通信测试程序运行失败,从I2C从设备RX8025中无法读取到数据。使用示波器的时候,也无法在时钟线SCL上看到时钟信号。但是在测试数据线SDA的时候,偶尔能看到一些数据。如果使用示波器表笔点在测试的信号线上,有时能读到正确的数据;如果不这样做,几乎看不到正确的数据。开始怀疑是否是因为测试程序本身可靠性有问题,因为在一段时间测试后发现,这种现象随机性比转载 2016-03-20 13:39:31 · 955 阅读 · 0 评论 -
使用可靠的I2C代码
现有的STM32的I2C代码,由于没有使用STM32官方推荐的DMA+I2C中断优先级最高的方式,总感觉用着不放心。想要修改,却又不知道如何改是更好地。于是想查找I2C驱动部分处理的好的代码,参照将现有I2C部分程序重构下。在查找了一些代码库文件后,比对了现有的I2C程序,发现EFM32的I2C库代码部分处理的很完备。使用的是硬件I2C+超时处理机制。而且超时处理也有适当的处理。有可能是EFM32转载 2016-03-20 13:38:29 · 523 阅读 · 0 评论 -
Ubuntu 强制清空回收站
因为Ubuntu 8.04的回收站路径已经改变为:$HOME/.local/share/Trash/使用如下命令强制清空回收站# rm -fr $HOME/.local/share/Trash/files/*原创 2016-07-15 11:35:00 · 7119 阅读 · 0 评论 -
Linux free 命令详解
解释一下Linux上free命令的输出。 下面是free的运行结果,一共有4行。为了方便说明,我加上了列号。这样可以把free的输出看成一个二维数组FO(Free Output)。例如:FO[2][1] = 24677460FO[3][2] = 10321516 1 2 3 4原创 2016-07-15 11:39:46 · 346 阅读 · 0 评论 -
JLINK flash timeout.Reset the tatget and try it again 解决
如果在程序中打开了Flash读保护:FLASH_ReadOutProtection(ENABLE);再次用jlink下载程序时会出错:flash timeout.Reset the tatget and try it again解" style="margin:0px; padding:0px; border:0px; list-style:none">flash timeout.原创 2017-01-15 12:07:45 · 14691 阅读 · 7 评论 -
关于 shell 脚本中 重定向文件名带问号的解决办法
1. 如果你的 shell 脚本内容如下./format -format ./format_model--input data.txt > result.txt[注意这里直接回车换行了]echo 'complete'上面重定向后的 result.txt 实际查看名称为 fresult.txt^M,其实^M为 linux无法识别的字符时的一种替换,实际重定向后 文件名为 resu原创 2016-07-08 00:04:44 · 6295 阅读 · 1 评论 -
container_of() 宏
在学习Linux驱动的过程中,遇到一个宏叫做container_of。 该宏定义在include/linux/kernel.h中,首先来贴出它的代码:/** * container_of - cast a member of a structure out to the containing structure * @ptr: the pointer to the me原创 2016-10-16 21:12:10 · 245 阅读 · 0 评论 -
cp: cannot create symbolic link `/mnt/hgfs/SharedData/*/system.dat
[root@localhost hugh]# cp -rf linux-2.6.39 /mnt/hgfs/SharedData/cp: cannot create symbolic link `/mnt/hgfs/SharedData/linux-2.6.39/arch/microblaze/boot/dts/system.dts': Operation not supportedto原创 2016-11-06 13:55:45 · 4813 阅读 · 2 评论 -
H-Jtag V1.0 烧写NOR Flash
1. 打开H-Jtag-ServerInit->load,选择初始化脚本“FriendlyARM2440.his”->"打开"2. 菜单中选择“Settting”->"USB/LPT Selectiojn",选择 LPT3. 菜单中选择“Settting”->"LPT JTAG Setting",做如下设置4. 菜单中选择“Control”->"LPT JTAG Settin原创 2016-11-06 13:54:38 · 514 阅读 · 0 评论 -
IAR EWARM 破解方法
首先从官网下载安装包:http://www.iar.com/Service-Center/Downloads/如下图,点击编译大小限制的版本下载,这样容易检测是否破解成功!EWARM 破解方法" title="IAR EWARM 破解方法" style="margin:0px; padding:0px; border:0px; list-style:none">下载,安原创 2016-11-03 23:44:06 · 1208 阅读 · 0 评论 -
树莓派使用 USB 摄像头做网络监控
在树莓派上有几种视频监控软件 fswebcam motion mjpg-streamer 上面两种都相对简单,唯独mjpg-streamer整了半天。所以记录下安装过程1.将USB摄像头插上,查看是否找到设备,输入:root@raspberrypi:/# lsusb其中Logitech原创 2016-09-17 15:13:50 · 11375 阅读 · 5 评论 -
V4L2 获取和配置摄像头
一、V4L2 获取和配置摄像头程序示例:#include #include #include #include #include #include #include #includeint fd;const char *input_dev = "/dev/video0";const char *qctrl_name = NULL;int qctrl_value =原创 2016-09-16 16:58:22 · 6147 阅读 · 2 评论 -
buffer 与 Cache 的区别
在有些时候buffer和cache这两个词经常混用。不过在一些比较低层的软件里是要区分这两个词的,看老外的洋文:A bufferis something that has yet to be "written" to disk. A cacheis something that has been "read" from the disk and stored for later原创 2016-08-27 23:40:56 · 449 阅读 · 0 评论 -
最常用的Linux命令
1. #mount -t iso9660 /dev/cdrom /mnt/cdrom-ttype 要挂载的设备类型iso9660是标准的cd文件格式,它告诉mount命令,我要挂载的是一个标准的cd。/mnt要挂载到的目标目录下如果是在VM下挂载,一定要将“Setting”中的CD/DVD中的“Device Staus”的“Connect和Connect a原创 2011-12-28 18:26:05 · 505 阅读 · 0 评论 -
FlashFXP等常用FTP软件 设置 二进制 上传
声明:其中部分转自百度经验 FTP软件如果不设置为二进制传输,则在某些服务器上可能会导致各种各样的异常的问题,比如:白屏,乱码,异常的报错等等。因此请一定要安装下面的说明设置FTP。下面整理了FlashFXP、Filezilla、CuteFTP、LeapFTP等软件的设置方法供您参考:工具/原料Fl转载 2016-07-17 16:50:40 · 6168 阅读 · 0 评论 -
Ubuntu 修改交 swap 分区的大小
下面我们开始创建需要的交换文件(交换空间)先创建一个交换文件存放的目录。我在根目录下创建名叫swap的目录1.# mkdir /swap2. 然后进入目录# cd /swap3. 创建自己希望的交换分区文件的大小# sudo dd if=/dev/zero of=swapfile bs=1M count=2k (创建2G的swap, 这步比较慢 创建分区原创 2016-07-15 11:24:51 · 7946 阅读 · 0 评论 -
信号线小电阻的作用
在一块新的PCB上,测试系统能否正常运行的时候,发现系统上电后没有正常启动。 系统框图如下: 在上电的时刻,CPU A(GPIO电平2.6V)会向串口发送启动日志数据,CPU A启动后,使能CPU B(GPIO电平 3.3V)模块的电源芯片,CPU B开始工作。 经分析,发现是上电时刻CPU A的Rx接收到数据,导致CPU A进入非正常启动状态。猜想CPU A的Rx端接收转载 2016-03-20 13:36:13 · 1001 阅读 · 0 评论 -
IAR for MSP430 无法破解 的 解决办法
0. 先卸载之前已安装的 IAR for MSP430 软件1. 关闭Win7 用户通知2. 以分别以管理员身份运行 “EW430-IAR-430-510.exe” 和 “IAR kegen PartA.exe”3. 选择好对应需要破解的版本原创 2015-12-03 22:42:39 · 6531 阅读 · 0 评论 -
msp430 学习经验总结
最近学习MSP430,把自己的一些经验分享下,这是我在网上发现的一篇很不错的文章,归纳得很好,简洁明了。1.MSP430开发环境建立 1.安装IAR dor msp430 软件,软件带USB仿真器的驱动。2.插入USB仿真器,驱动选择安装目录的/drivers/TIUSBFET3.建立一个工程,选择"option"选项,设置 a、选择器件,在"Gene转载 2015-09-07 20:39:55 · 1402 阅读 · 0 评论 -
ubuntu输入正确的登录密码但无法进入系统
1. 出现该问题的时的系统状态:由于安装 arm-linux-gcc 交叉编译环境,修改 /etc/environment配置文件,以及 用户lij目录 /home/lij下的.bashrc文件,/etc/profile配置文件所致2. 进行终端 sudo ls vim等命令都用不了3. 解决方法开机时会出现GRUB选单画面,里面有一个RECOVERY MODE原创 2015-03-08 22:29:51 · 1991 阅读 · 0 评论 -
调试stm32时经常出现"Flash Download Failed-"Cortex-M3"
MDK中出现 Error: Flash download failed-"Cortex-M3"的原因及解决办法出现这处问题通常是MDK中的Flash的编程算法没有配置或没有配置正确,在主菜单中打开Flash->Configure Falsh Tools配置窗口,切换到“Utilities"页。按“Setting"按钮进入“Flash download setup"配置窗转载 2015-01-13 19:19:55 · 6030 阅读 · 0 评论 -
EOF是什么?
我学习C语言的时候,遇到的一个问题就是EOF。它是end of file的缩写,表示"文字流"(stream)的结尾。这里的"文字流",可以是文件(file),也可以是标准输入(stdin)。比如,下面这段代码就表示,如果不是文件结尾,就把文件的内容复制到屏幕上。 int c; while ((c = fgetc(fp)) != EOF) {转载 2015-01-11 09:05:46 · 529 阅读 · 0 评论 -
GCC-AVR 编写中断服务函数的注意事项
//注意:本文使用的GCC-AVR版本为WinAVR20100110原创 2014-06-22 14:24:08 · 4247 阅读 · 3 评论 -
SourceInsight 换行缩进过度的解决方法
问题描述:原创 2014-06-22 09:41:31 · 6607 阅读 · 1 评论 -
Source insight / Visual studio 2012 / UltraEdit 中显示TAB符用4个空格代替
Source insight中显示TAB符用4个空格代替 Options->Document Options 将 Visible tabs 打勾原创 2014-06-15 09:55:29 · 1097 阅读 · 0 评论 -
Source Insight配置WinAVR的具体步骤
Source Insight配置WinAVR的具体步骤 配置WinAVR主要分2步:1.选择Options->Custom Commands a. 点击ADD按纽,在Command: 内写入编译器名,如WinAVR Compile b. 在Run: 内写入命令make clean;make all; c. 千万不要在Dir加目录,我试过了,make cle原创 2014-06-15 00:49:03 · 1058 阅读 · 0 评论 -
AVR-GCC开发5种软件组合(GCC+PN/AS/VC/SI/UE)极速上手指引(菜鸟适用)
1.GCC+PN(WinAVR-20071221)转载 2014-06-15 00:14:17 · 1311 阅读 · 0 评论 -
关于嵌入式linux下的串口通讯问题---回车、换行、缓冲
嵌入式Linux串口通讯测试问题: 经过实验,从Linux(PC)通过串口向嵌入式Linux开发板发送数据时,串口初始化完毕后遇到回车(0x0d)或换行(0x0a)才开始从串口接收数据,回车或换行前的数据接收不到,回车或换行后的数据接收正常.从嵌入式Linux开发板通过串口向Linux(PC)发送数据,接收正常.无丢字符现象.请问这是为什么?两台Linux(PC)经过串口通讯接收正常.转载 2014-06-27 23:35:59 · 12213 阅读 · 1 评论 -
关于结构体初始化的相关总结
1. 这样定义并初始化是可以的原创 2014-05-24 20:39:37 · 1639 阅读 · 0 评论