ARM
文章平均质量分 65
wllinux12138
这个作者很懒,什么都没留下…
展开
-
FlexCAN和CAN的关系
本文是其他网站翻译的,原文:https://community.nxp.com/t5/Kinetis-Microcontrollers/CAN-as-FLEXCAN/td-p/266602FlexCAN指示IP核的名字,在飞思卡尔,我们在不同的MCU系列中有多个CAN控制器,MSCAN,FLEXCAN等。每个CAN控制器在缓冲区,FIFO,mailboxes等方面都有不同的特点。重要的是该IP模块符合CAN标准。FlexCAN模块是符合CAN 2.0B协议规范的CAN通信控制器。...翻译 2021-01-08 16:34:37 · 6395 阅读 · 0 评论 -
ARMv8手册阅读笔记
文章目录Execution stateAarch64Aarch32异常等级Execution statearmv8有两种执行状态:AArch64和Aarch32Aarch64提供31个64位的通用寄存器,X30用作程序链接寄存器一个64位的PC指针,64位的SPs指针,异常链接寄存器ELRs提供32个128bit的寄存器用作SIMD(这个就是单指令多数据集)和标量浮点(这个暂时不懂)。提供单个指令集A64定义了ARMv8异常模式,最多4中异常模式EL0~EL3,提供特权等级提供64位的虚原创 2020-12-17 20:59:55 · 617 阅读 · 1 评论 -
libcap库编译
(1)下载https://mirrors.edge.kernel.org/pub/linux/libs/security/linux-privs/libcap2/(2)解压(3)export CROSS_COMPILE=arm-linux-gcc(4)make原创 2020-09-16 14:33:31 · 632 阅读 · 0 评论 -
iproute2交叉编译
ubuntu 18.04 iproute2交叉编译(1)下载:iproute2-4.9.0https://mirrors.edge.kernel.org/pub/linux/utils/net/iproute2/(2)解压(3)./configure(4)修改MakefileCC改成交叉编译器名字SUBDIRS改成下面这样SUBDIRS=lib ip(5)修改ConfigCC改成交叉编译器名字(6)make完毕...原创 2020-09-16 14:32:52 · 1036 阅读 · 0 评论 -
freeRTOS内存释放问题vPortFree
vPortFree()内存释放函数,释放两次并不会报错。但是应当避免。今天在看别人代码的时候,发现一个问题,在不同的地方把一个指针指向的内存释放了两次,但是程序运行是正常的。虽然运行没出错误,但是程序的逻辑是有问题的。所以我写了下面的语句测试了一下vPortFree(pbuf);vPortFree(pbuf);发现确实不会导致程序运行出问题,但是写代码应当避免这种情况。...原创 2019-11-15 11:18:33 · 3825 阅读 · 0 评论 -
解决ubuntu升级--后mini2440无法从nfs启动的问题
最近升级了电脑的ubantu系统,导致mini2440无法从nfs网络文件系统启动。解决方法在ubuntu18.04的 “/etc/default/nfs-kernel-server” 文件末尾加一行RPCNFSDOPTS="--nfs-version 2,3,4 --debug --syslog"sudo /etc/init.d/nfs-kernel-server restart...原创 2019-07-24 09:38:02 · 168 阅读 · 0 评论 -
NUC972开发板qt移植
1、开发环境编译器:官方提供的arm-linux-gcc 4.8.4操作系统:ubuntu 14.04 32位2、步骤(1)运行BSP目录的install.sh,QT/ReadMe目录下的software.sh。(2)编译uboot,之后会产生mkimage,把mkimage添加到环境变量。(3)按照手册配置内核,编译内核。根文件系统在nfs服务器。(4)编译busyb...原创 2018-12-11 21:12:10 · 2419 阅读 · 0 评论 -
国嵌上学期笔记-自己实现bootloader-第三节
摘要:上节讲述了mini2440的时钟初始化,本节讲述内存的初始化1、内存的分类:(1)SRAM和DRAM(2)寻址:根据行地址和列地址从L-BANK中找到对应地址,内存芯片内部通常会分成4个L-BANK。 首先选择L-BANK选择信号,然后再给行列地址。内存容量=L-BANK数量*单元格数目*每个单元格的容量(也就是数据宽度)。2、mini2440的内存初始化:(1)2440地址空...原创 2018-06-29 11:02:42 · 301 阅读 · 0 评论 -
国嵌上学期笔记-自己实现bootloader-第四节
摘要:本节把代码复制到内存。初始化C语言的环境,并调到main函数开始执行。1、从NAND启动,则NAND前4KB的代码会被复制到SRAM,从SRAM开始执行,这4KB的代码把NAND剩下的代码复制到内存中,调到内存相应位置执行。本节首先将SRAM的代码复制到内存运行。因为NAND还没有初始化。2、链接地址:当main函数执行时,调用了一个函数,PC指针就会被赋值为这个函数的链接地址。ldr伪指令...原创 2018-06-29 13:56:45 · 186 阅读 · 0 评论 -
国嵌上学期笔记-自己实现bootloader-第二节
摘要:第一节讲述了mini2440的核心初始化。1、电亮LED,根据数据手册,配置GPIO的控制寄存器和数据寄存器就可实现LED的控制。2、时钟初始化: 产生时钟信号的方式有两种: (1)晶振:晶体振荡器,结构简单,噪声低,但是如果要得到高频率,生产成本较高。 (2)PLL:锁相环,可以对晶振的频率进行分频或者倍频。3、mini2440时钟体系 (1)学习时钟体系步骤 ...原创 2018-06-24 18:47:22 · 254 阅读 · 0 评论 -
STM32F103时钟
1、分类: 分为系统时钟,外设时钟。 固件库完成系统时钟的配置,外设时钟由分频因子决定。2、系统时钟的配置:下图来自STM32F103中文参考手册。(1)HSE:高速外部时钟 来自晶振,(4-16M)通常为8M,有源晶振不需要接OSC_OUT。 RCC_CR时钟控制寄存器的第16位,HSEON控制。(这个位置1,才能使用外部...原创 2018-06-22 12:23:30 · 2524 阅读 · 0 评论 -
STM32F103启动文件注释
1、启动文件作用: (1) 初始化堆栈指针 (2)初始化PC指针指向复位程序 (3)初始化中断向量表 (4)配置系统时钟(3.0版本之前,进入main函数后,首先配置系统时钟,但是3.5.0版本固件库配置了时钟,所以就不用配置 了,因此在用固件库的时候,看一下注释,如果已经配置,就不用自己配置了。) (5)调用C库函数_main,进入C语言的世界。;*********...原创 2018-06-22 11:38:02 · 1435 阅读 · 1 评论 -
国嵌上学期笔记-自己实现bootloader-第一节
一、思路1、分析异常向量表arm920T有7个异常。Reset重启时产生该异常。Undefined instructions未定义指令异常。SWI软中断。Prefetch Aboart预取指令失败产生。Data Abort预取数据失败。IRQ中断。FIQ快速中断。发生异常的时候,会自动跳转到固定的地址来执行,这个地址叫异常向量。表中每个异常对应两个地址,默认前面的,如果要用后面的,需要配置CP15...原创 2018-06-20 23:36:51 · 367 阅读 · 0 评论 -
makefile笔记
1、var=`pwd` var=$(shell pwd) all: echo $(var) 都可执行shell命令2、Makefile中make版export 同上,小标题的意思是,这里的export完全是make语法中的操作符。它通常是用来向后来发起的make进程 (这些后起的make进程由当前的make进程启动)传送变量。3、ifdef O ...原创 2018-06-20 20:52:05 · 228 阅读 · 0 评论