推荐阅读最新更新时间:2024-03-16 14:03
ARM启动代码的设计分析
ARM体系结构 目前,ARM系列的通用32位RISC微处理器有ARM7、ARM9、ARM9E、ARM10等多个产品,这些处理器可以工作于7种模式下。除User模式以外的其它模式都叫做特权模式,除User和System以外的其它5种模式叫做异常模式。大部分应用程序都在User模式下运行,当处理器处于User模式下时,执行的程序无法访问一些被保护的系统资源,以利于操作系统控制系统资源的使用,也不能改变模式,否则就会导致一次异常。对于System模式,任何异常都不会导致进入这一模式,而且它使用的寄存器和User模式下基本相同,主要是用于有访问系统资源请求而又避免使用额外的寄存器的操作系统任务。在特权模式下,它们可以完全访问系统
[单片机]
基于机器人算法的Python代码合集
本文是一些(特别是自动导航算法)的代码合集。
一、环境需求
Python 3.6.x
numpy
scipy
matplotlib
pandas
cvxpy 0.4.x
二、怎样使用
安装必要的库;
克隆本代码仓库;
执行每个目录下的python脚本;
如果你喜欢,则收藏本代码库:)
三、本地化
3.1 扩展卡尔曼滤波本地化
该算法利用扩展卡尔曼(Exnded Kalman Filter, EKF)实现混合本地化。
蓝线为真实路径,黑线为导航推测路径(de reckoning tra
[机器人]
关于stm32f1ox.h头文件启动代码与编译器里的宏定义
今天调试stm32f107vc发现他的外部时钟竟是25M,和之前的stm32f103rbt6的8M晶振有所区别。 在此总结一下自己的发现。 stm32f107vc属于互联性器件,他的启动文件应该是.cl。对于启动文件有ji个, .ld .md .hd .cl .xl rbt6选用的是md 可以在keil c++ 宏定义那边说明STM32F10X_CL, 或者在stm32f10x。h中找到 #if !defined (STM32F10X_LD) && !defined (STM32F10X_LD_VL) && !defined (STM32F10X_MD) && !defined (STM32F10X_MD_V
[单片机]
STM32f4电容触摸按键实验代码(02)
STM32f4————电容触摸按键实验代码(02) //定时器 2通道2 输入捕获配置 //arr:自动重装值 //psc:时钟预分频数 void TIM2_CH1_Cap_Init(u32 arr,u16 psc) { GPIO_InitTypeDef GPIO_InitStructure; TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; TIM_ICInitTypeDef TIM2_ICInitStructure; RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE); //TI
[单片机]
STM32—中断详解(配合按键中断代码,代码亲测)
在STM32中执行中断主要分三部分: 1.配置NVIC_Config()函数 2.配置EXTI_Config()函数 3.编写中断服务函数 (注:本文章所用代码为中断按键代码,实现了按键进入中断从而控制LED亮灭) 配置NVIC_Config()函数 NVIC 是嵌套向量中断控制器,控制着整个芯片中断相关的功能,它跟内核紧密耦合,是内核里面的一个外设。 NVIC_Config()函数代码如下: static void NVIC_Config(void) /* 主要是配置中断源的优先级与打开使能中断通道 */ { NVIC_InitTypeDef NVIC_InitStruct ; /* 配置中断优先级分组(设置抢占
[单片机]
S3C2410启动代码详解(2)
;======================================================================================== //在这里用IMP ORT伪指令(和c语言的extren一样)引入|Image$$RO$$Base|,|Image$$RO$$Limit|... //这些变量是通过ADS的工程设置里面设定的RO Base和RW Base设定的,最终由编译脚本和连接程序导入程序. //那为什么要引入这玩意呢,最简单的用处是可以根据它们拷贝自已 ,从把RW和ZI变量从加载域中复制到运行域中 //一个arm由RO,RW,ZI三个断组成 其中RO为代码段,RW是已经初始化的
[单片机]
单片机闪烁灯流水灯汇编代码大全
1、单片机AT89C51的P2口接8个发光二极管,让这8个发光二极管显示闪烁功能,即八灯亮2S,熄灭3S,如此循环。 参考程序: ORG 0000H start: MOV P1,#0H CALL delay MOV P1,#0FFH CALL delay CALL delay LJMP start delay: MOV R7,#200 d2: MOV R6,#250 d1: DJNZ R6,d1 DJNZ R7,d2 RET END ;200*250次*2*1u
[单片机]
介绍嵌入式应用中存储器类型的选择技巧
存储器的类型将决定整个嵌入式系统的操作和性能,因此存储器的选择是一个非常重要的决策。 无论系统是采用电池供电还是由市电供电,应用需求将决定存储器的类型(易失性或非易失性)以及使用目的(存储代码、数据或者两者兼有)。另外,在选择过程中,存储器的尺寸和成本也是需要考虑的重要因素。对于较小的系统,微控制器自带的存储器就有可能满足系统要求,而较大的系统可能要求增加外部存储器。为嵌入式系统选择存储器类型时,需要考虑一些设计参数,包括微控制器的选择、电压范围、电池寿命、读写速度、存储器尺寸、存储器的特性、擦除/写入的耐久性以及系统总成本。 图1列出了在嵌入式应用系统中最常用的存储器类型。下面讨论在选择存储器时应遵循的基本原则。 选择
[缓冲存储]