IOT
文章平均质量分 80
papaofdoudou
我的藏经阁.
展开
-
BSP和Driver的区别
BSP( Board Support Package)是板级支持包,是介于主板硬件和操作系统之间的一层,应该说是属于操作系统的一部分,主要目的是为了支持操作系统,使之能够更好的运行于硬件主板。1)BSP是你的板子相关的代码,比如GPIO的配置,I2C连接的设备。同一款CPU,不同的板子也会因为引脚的接法不同,设备上从属设备不一样导致BSP不一样;2)Driver,也就是我们常说的驱动,它和你的子设备是密切相关的,相同设备在相同软件平台下驱动基本是可以通用的,和板子的关系不是很大的。在OS上的dr转载 2020-11-02 11:57:16 · 8030 阅读 · 0 评论 -
关于Linux&Melis Kernel Neon使用的一些总结
前些天在项目中遇到一个问题,做一下总结。问题描述:Melis3.0方案跑在cortex-a7平台上,在用-mfpu=neon-vfpv4 --mfloat-abi=hard编译固件时,会概率性有系统死机或者数据不一致的情况出现。问题分析:一开始别人跟我讲这个问题并没特别在意, 认为是个别模块的错误使用导致的,可是后面另一个模块又出现类似问题,逐渐怀疑和系统相关了。问题规律: 问题多发生..................原创 2020-03-12 11:52:20 · 2410 阅读 · 7 评论 -
处理器调试技巧总结
1. 不disable MMU,通过DS5查看物理内存:memory window 输入: SP:0x40000000,标识查看安全物理内存的0x40000000地址。原创 2020-01-16 19:12:27 · 34 阅读 · 0 评论 -
Nuttx开发初探-编译篇
各类系统搞了这么多年,感觉关于OS的各类底层机制已经摸透了,直到两年前遇到Nuttx,大致浏览了目录结构和源码readme后,感觉Nuttx应该是一个不错的系统,有瓜可挖。 只是一直忙于项目,没有时间深入研究。 直到翻出之前参加某活动获赠的FRDM-K64F开发板在那静静吃灰,有了想动一动的冲动。废话不多说,下面直入主题写步骤,会比较干,喜欢文艺范的绕行.主机配置:ubuntu14.04....原创 2019-11-13 15:43:59 · 1939 阅读 · 2 评论 -
Melis3.0系统常见问题分析方法
目录1. 分析系统问题的常用方法2. 打印日志分析3. 系统自带的分析工具3.1. 任务状态管理器3.1.1. 功能启动配置选项3.1.2. 任务管理器分析实例3.2. 主动断点3.3. KGDB裸机调试3.3.1. 使能KGDB3.3.2. KGDB调试实例3.4. 分析崩溃现场CPU寄存器3.4.1. 第一步,分析寄存器现场....原创 2019-09-16 18:40:06 · 1818 阅读 · 0 评论 -
802.11 mac address 说明
1. Does the Stations have knowledge about the Distribution System the AP is connected to ?2. are the FromDS and ToDS bits in the Frame Control Field of the 802.11 MAC header of data frames, set/re...转载 2019-02-18 16:42:13 · 707 阅读 · 0 评论 -
higan(bsnes)游戏模拟器的编译和试玩
higan 是一款开源的游戏模拟器实现,这里直接引用英文介绍:higan (formerly bsnes) is a Nintendo multi-system emulator that began development on 2004-10-14.It currently supports the following systems:Nintendo Famicom Ninte...原创 2018-11-09 11:30:35 · 2881 阅读 · 0 评论 -
使用J-link裸机调试stm32-f411re nucleo平台
stm32-f411re nucleo开发板本身自带了st-link调试器子板,在ubuntu环境下接通平台的mini type-b usb口,执行lsusb 可以看到lsusb -t 可以看的更清楚,接口功能显示出来了. 其中的st-link/v2.1设备(nucleo-f103rb)就是stlink调试器, 固件版本是v2.1 , 其实它本身也是一块基于stm32的开发板,只不过内部的固件已原创 2017-02-06 17:18:19 · 3527 阅读 · 0 评论 -
信号量与互斥量的区别
多任务间同步的方式包括关中断,调度器上锁, 互斥量(mutex),信号量,消息队列几种, 其中互斥量和信号量使用使用方式相近,连概念和实现都有些近似, 所以没有扎实操作系统背景知识的同学常常分不清出他们的区别,容易混淆, 下面简单分析以下.1.互斥量 互相斥量是管理临界资源的一种有效手段, 因为互斥量是独占的, 所以在一个时刻只允许一个线程占有互斥量,利用这个性质来实现共享资原创 2017-04-02 12:46:53 · 8487 阅读 · 0 评论 -
OpenOCD安装
本文在ubuntu下安装一个全功能的OpenOCD组件,用来支持多种不同的Jtag适配器。 1.下载代码: git clone git://git.code.sf.net/p/openocd/code openocdBootstrap the build envoronment ./bootstrap 3.安装libftdi, 用以支持全功能适配器: sudo apt-ge原创 2017-01-25 17:40:42 · 3918 阅读 · 1 评论 -
Melis系统崩溃问题分析以及解决思路
Melis系统崩溃问题分析以及解决思路在使用Melis 系统时,会经常遇到系统崩溃死机的问题,对于此类问题大家总是避之不及, 分析原因, 一方面是此类问题涉及到CPU异常模式的问题,需要用户对目标CPU架构具有较多的了解。另一方面,异常处理代输出的调试信息不够直观,不太友好的调试界面使用户失去了直面问题的勇气。 所以一般情况下的解决思路都是回避问题,通过不断修改业务代码来试错. 这种解决思路不但效率原创 2017-10-17 20:38:51 · 2056 阅读 · 1 评论 -
arm中system模式的作用
这几天学了很多arm细节知识,个人平时实在没有深入进去 交了钱被人逼着学才会努力深究,真是贱以前就知道arm有7种基本工作模式 FIQ 、IRQ由中断进入 UNDEF、ABORT 由程序异常进入 SVC由上电和软中断进入 user由SVC处理程序主动进入 但是还有一个system,使用和user相同的寄存器,但是又没有SPSR,同时还能执行特权指令 这么一个另类,OS把它当user用不转载 2017-10-31 10:56:30 · 1239 阅读 · 0 评论 -
基于STM32F411-Nucleo平台搭建zephyr运行和调试系统
zephyr原创 2017-01-25 16:03:38 · 3866 阅读 · 0 评论 -
使用OpenOCD烧录STM32-F411RE固件
OpenOCD很强大,根据RIOT官方的说法: OpenOCD (the open on-chip debugger) is an open source tool for debugging and flashing microcontrollers. In RIOT we try to use this tool for as many platforms as possible to red原创 2017-01-26 13:24:53 · 5677 阅读 · 0 评论 -
H264 bitstream格式
FFMPEG转码器在封装成FLV或者MP4的时候,会用到h264_mp4toannexb、aac_adtstoasc这两个filter。老版本的bsf使用需要特别注意,一个不小心,就造成的内存泄漏,不容易察觉。 在阅读ffmpeg.3.2.2的代码过程中,发现ffmpeg使用bsf用了新的方法,所以尝试使用并总结一下。初始化并申请空间AVBSFContext *bsf_ctx;AVBi...转载 2018-08-13 20:33:55 · 685 阅读 · 0 评论 -
使用树莓派GPU
https://github.com/raspberrypi/userlandThis repository contains the source code for the ARM side libraries used on Raspberry Pi. These typically are installed in /opt/vc/lib and includes source for ...转载 2018-08-18 23:36:23 · 5814 阅读 · 0 评论 -
在没有MMU功能的单片机上实现动态应用程序加载
在没有mmu的cpu上实现动态加载的功能。mmu:拥有虚拟地址映射的功能。在没有mmu的设备上实现动态加载是可能的,两种方法。1)我们知道局部变量占用的是堆栈的内存,全局变量和静态变量占用的是静态存储区,而静态存储区的地址是一个绝对的地址。所以要想实现动态模块的加载,我们不能够去使用全局变量和静态变量,解决方案是通过内存申请来解决。还有一个问题就是在使用函数指针的时候,其实也是一个绝对的...转载 2018-08-18 23:39:52 · 1356 阅读 · 3 评论 -
arm926t 异常向量的映射,(如何从0地址到0x20000000地址)
ARM的启动代码是非常重要的代码,直接关系到系统的稳定性和可靠性(这里主要讨论arm7, arm9;cortex系列的会在后续的文章中讨论)。上次我们通过两则文章讨论了ARM启动代码的过程,ARM的启动代码(1):介绍ARM的启动代码(2):AT91SAM9260启动详解 这次我们聊聊ARM的代码的具体编写。那么什么样的代码会涉及到这些问题呢?1.Bootloade转载 2017-04-06 17:28:38 · 1659 阅读 · 0 评论