- 博客(29)
- 收藏
- 关注
原创 WSL 安装ZSH 配置插件遇到的问题
/root/.oh-my-zsh/custom/plugins/zsh-autosuggestions/zsh-autosuggestions.plugin.zsh:source:1: no such file or directory: /root/.oh-my-zsh/custom/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh^M/root/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting/zs
2020-12-14 16:24:43 787
原创 uboot 中 cli_hush的个人理解
1、cli_loop()是整个shell程序的循环,里面包含了用户输入的检测、字符检查、字符拼接、命令解码、历史输入的维护2、整个shell的运行一直在维护一个结构体struct pipe { int num_progs; /* total number of programs in job */ struct child_prog *pro...
2020-01-10 18:32:10 551
原创 小白学习SLAM之【各种矩阵】
1、正交矩阵[预备知识]正交:是线性代数的概念,是垂直这一直观概念的推广。作为一个形容词,只有在一个确定的内积空间中才有意义。若内积空间中两向量的内积为0,则称它们是正交的。如果能够定义向量间的夹角,则正交可以直观的理解为垂直。 正交向量组:欧式空间V的一组非零向量,如果他们俩俩向量正交,则称是一个正交向量组。 正交向量组 是 线性无关的(线性无关,就是在一组数据中没有一个量可以被其余...
2019-12-26 15:53:52 795
原创 u-boot Makefile 记录
1、当在根目录敲下 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- 时,makefile的找到那些目标,如下图所示:
2019-11-19 17:55:04 142
原创 [shell] 中变量操作的介绍
介绍下Shell中的${}、##和%%使用范例,本文给出了不同情况下得到的结果。假设定义了一个变量为:代码如下:file=/dir1/dir2/dir3/my.file.txt可以用${ }分别替换得到不同的值:${file#*/}:删掉第一个 / 及其左边的字符串:dir1/dir2/dir3/my.file.txt${file##*/}:删掉最后一个 / 及其左边的字符串:my.f...
2019-11-06 10:54:26 117
原创 【FreeRTOS源码阅读】<3> heap_x.c
heap_1 内存管理阅读直接数组向后一直申请,不支持释放heap_2 内存管理阅读除了不合并空闲块以外,其他和heap_4一样heap_3内存管理阅读直接调用系统的malloc和freeheap_4 内存管理阅读在创建任务时,会给TCB申请内存空间、给任务的栈申请空间、给状态链表申请空间;在使用队列以及信号量时,会给队列申请空间。申请空间时会调用vPortMa...
2019-10-26 17:12:07 790
原创 【FreeRTOS源码阅读】<2> task.c(2)任务的调度
FreeRTOS的任务调度有抢占、时间片轮询。抢占存在于不同任务优先级,时间片轮询是在同等优先级的任务。任务的状态有:运行、就绪、打断、挂起、删除对应任务的状态的有以下几个链表:pxReadyTasksLists[ uxPriority ]、xPendingReadyList、pxDelayedTaskList、pxOverflowDelayedTaskList、xSuspendedTas...
2019-10-25 18:33:39 687
原创 【FreeRTOS源码阅读】<2> task.c (1) 任务创建以及TCB、List的结构
上篇讲述了list.c关于链表操作的源码阅读,此片文章将开始阅读task.ctask.h相关结构体/* 由eTaskGetState返回的任务状态 */typedef enum{ eRunning = 0, /* 一个任务查询自己的状态,必定是运行状态 */ eReady, /* 被查询的任务处于Ready状态 */ eBlocked, /* 被查询的任务处于被阻塞的状...
2019-10-24 17:52:18 1294
原创 【FreeRTOS源码阅读】<1> list.c
struct xLIST_ITEM{ TickType_t xItemValue; /*< 链表节点的值。 在大多数情况下,它用于按降序对列表进行排序 */ struct xLIST_ITEM * pxNext; /*< 指向链表中下一个 ListItem_t */ struct xLIST_ITEM * pxPrevious; /*< 指向链表中上一个 Lis...
2019-10-23 18:01:57 942
原创 Ubuntu 下解决apt-get install 安装,多重依赖的问题
Ubuntu安装软件,提示依赖项未安装。注意:本文所有指令操作均在root用户下通过apt-get install g++指令来安装有提示如下:解决步骤如下:执行指令:apt-get install aptitude上一步结束后执行安装指令aptitude install g++,按图中输入并回车:...
2019-10-16 14:37:35 2290
原创 MSVC 和 ARM编译器对注释的识别问题
#define FUNCTION_XYZ /**this function is aaa*/这句话在arnm编译器下面没有问题,但是放到MSVC编译器则会报错,解决方法:把这句话写成#define FUNCTION_XYZ /**this function is aaa */,在注释的最后添加一个空格...
2019-06-17 10:18:06 341
转载 STM32F10x单片机Flash写操作导致中断不响应问题
昨天遇到一个问题,在写入数据到STM32F103单片机的Flash中时会出现串口中断接收数据丢失现象,但是我设置的串口接收中断优先级是最高的,并且没有哪里将全局中断关闭很长时间(除了操作系统部分内核代码执行的时候关闭全局中断,但是没有占用很长时间,不会导致丢失串口数据)。在正常情况下在没有写数据到Flash中去的时候所有串口数据都能正常接收,没有数据丢包现象,但是当执行一次写入操作(写一个页256...
2019-03-07 17:39:07 2244
转载 stm32 使用 printf 時 进入HardFaults, FaultsReports (INSTATE被置位)
问题描述:由于没有进行字节对齐,所以会报错u8 tempdat = 0;printf("tempdat = %d \n",tempdat);\执行上述代码会报错;解决方法:__align(4) u8 tempdat = 0;printf("tempdat = %d \n",tempdat);原帖地址:http://www.openedv.com/thread-11229-1-1.html...
2018-04-17 15:48:39 2293
原创 关于在Keil中在peripheral中显示对应的窗口
原本是这样的 设置完成以后是这样 要进行下面的设置 Dialog DLL : TARMSTM.DLL Parameter : -pSTM32F103VE (该项更改为你所使用的芯片)
2017-12-19 14:17:34 2650
转载 stm32 memcpy 错位问题
是由于结构体没有的对齐标准未指定; 关于 #param pack n: #pragma pack(4) class TestB { public: int aa; char a; short b; char c; }; int nSize = sizeof(TestB); 这里nSize结果为12,在预料之中。 现在
2017-12-19 14:08:25 1715
转载 stm32 memcpy 错位问题
是由于结构体没有的对齐标准未指定;需要使用#pragma pack n进行指定;本文引用:https://www.cnblogs.com/forwhat/archive/2011/08/25/2152870.html关于 #pragma pack n: #pragma pack(4) class TestB { public: i
2017-11-21 17:56:47 3500
转载 STM32串口中断卡死主循环
该文档转自http://blog.csdn.net/origin333/article/details/49992383 在一项目中,使用STM32作为主控,程序运行一段时间后概率出现主循环卡死现象。问题分析如下: 1、程序USART2不停接收并处理串口数据,波特率115200; 2、主循环卡死; 3、USART1中断及TIM2中断响应函数运行正常;(USART1及TIM2中断优先级均比US
2017-11-07 17:07:13 8604 4
原创 STM32调试相关问题
关于STM32串口空闲中断的问题 1.空闲中断是接受数据后出现一个byte的高电平(空闲)状态,就会触发空闲中断.并不是空闲就会一直中断,准确的说应该是上升沿(停止位)后一个byte,如果一直是低电平是不会触发空闲中断的(会触发break中断)。2.关于第二点有要铺垫的三个情况,datasheet中 “当一空闲帧被检测到时,其处理步骤和接收到普通数据帧一样,但如果IDLEIE位被设置将产生一个中
2017-10-30 14:22:27 370
原创 ROS问题总结
软件环境:Vmware + Ubutnu 14.04ROS版本:ROS Indigo根据ROS官方教程安装完成后,直接运行Rviz出现Segmant fault(core dump);这个根据官方提供的解决方法是:当你使用虚拟机时,用的是Mesa graphics drivers (e.g. for Intel GPUs, inside a VM);也就是说我用了虚拟机,会使用
2017-10-22 11:15:09 340
原创 STM8S开发小结
一、STM8S003 管脚重映射功能如图所示,我想使用这个对应关系: PC5->TIM2_CH1; PC6->TIM1_CH1; PC7->TIM1_CH2; 这三个管脚默认功能为: PC5->SPI_SCK PC6->SPI_MOSI PC7->SPI_MISO stm8s不像stm32一样可以配置GPIO就可以了;stm8s需要修改OptionByt
2017-10-13 15:24:50 7627 1
原创 基础知识1
基础知识点(1)源代码编译过程 在linux系统中.c文件编译过程分为下面几个步骤: 1.预编译(Preprocess) ->预编译器=>输入.c文件;输出.i文件 2.编译(Compile) ->编译器=>输入.i文件;输出.s文件 3.汇编(Assembly) ->汇编器=>输入.s文件;输出.o文件 4.链接(Link)->链接器=>输入.o文件;输出elf文件 5
2017-08-19 16:45:17 254
原创 U-Boot学习记录1
一、前期准备 硬件:讯为开发板4412精英版 软件版本:uboot2016.05二、分析文件 Exynos4412为Cortex—A9处理器,cpu为armv7内核; 所以,这里start.s使用的是u-boot-2016.05\arch\arm\cpu\armv7目录下的start.s 打卡start.s文件后,首先看前面几行的include的头文件,这些文件
2017-08-16 15:48:18 266
原创 Uboot启动过程中的相关动作
Uboot执行分为两个阶段: 第一阶段: a 将cpu的工作模式设置为SVC b 关闭中断1、首先执行start.S; a->设置异常向量表 b->将CPU的工作模式改为SVC
2017-04-21 14:04:05 215
原创 从官方源码移植uboot(Exynos4412)
1、从官网上下载源码 2、修改源码 3、下载Bootloader1、从官网上下载源码源码地址见:ftp://ftp.denx.de/pub/u-boot/ 此次下载的uboot版本为2013.012修改源码
2017-04-19 16:56:57 1075 2
原创 Uboot启动过程中的相关动作
Uboot执行分为两个阶段: 第一阶段: a 将cpu的工作模式设置为SVC b 关闭中断1、首先执行start.S; a->设置异常向量表 b->将CPU的工作模式改为SVC
2017-04-19 16:50:18 216
转载 嵌入式C编程32条准则
转自:http://blog.163.com/wmq_xajh/blog/static/111798992200921354313651/01、版权和版本02、缩进、空格、换行、空行、对齐03、程序注释04、函数的[in][out]参数05、对系统调用的返回进行判断06、if 语句对出错的处理07、头文件中的#ifndef08、在
2017-02-14 17:41:49 320
原创 Linux学习笔记1-1
ARM架构处理器ARM架构处理器的工作模式:USR(User):普通应用程序的运行模式FIQ (Fast Interrupt):快速中断模式,用于处理快速的事件,例如高速数据传输IRQ (Interrupt):外部中断模式,用于处理通用中断事件SVC(SuperVisor):又称保护模式,操作系统使用的特权模式ABT(Abort):数据访问中止模式,用于虚拟存储和存储保护UND(Unde
2017-01-04 17:57:18 369
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人