操作平台和环境 DSP型号:TMS320C6713 仿真器:XDS510PLUS Flash型号:AM29LV800BT或AM29LV800BT都试过(一般接口一样,区别不大) RAM型号:MT48LC16M16A2P(注意16位数据线接口) DSP/BIOS库:V5.31.02 CSL库:(假定读者已经会使用了) 边写LED程序.边聊聊操作系统的滴答时钟 在上篇文章DSP-BIOS使用入门的基础上,这里用用DSP/BIOS操作系统的CLK和PRD模块.这两个模块涉及到硬件定时器.我们使用仿真器…
遇到个诡异的问题,28335的DSP,之前程序调试一切正常,但是烧写FLASH后,拔掉仿真器却始终部工作. 解决思路: 1) 检查配置文件貌似没什么问题,复制到其他工程,在开发板上拔掉仿真器启动正常.这部分应该没问题. 2) 检查DSP 启动选择部分 XA12~XA15,看起来没问题. 3) 检查DSP上电部分,使用示波器测试,TPS3305工作正常,/RESET信号正常. 正当不知所措的时候,用示波器看了下有源晶振输出,结果DSP启动了.下电,再测,DSP不启动的时候,晶振输出呈锯齿波,不同于…
2019-3-12系统滴答定时器中断使用 定义一个timer ​​ 其实就是使用系统的滴答定时器产生一个中断. 初始化timer init_timer函数 实现如下 void fastcall init_timer(struct timer_list *timer) { timer->entry.next = NULL; timer->base = __raw_get_cpu_var(tvec_bases); ifdef CONFIG_TIMER_STATS timer->start_s…
;//us与系统滴答的被乘数 ;//ms与系统滴答的被乘数 ;//系统运行秒数 /** * @description:系统滴答计时系统初始化 * @param 无 * @retval 无 */ void SysTick_Init(void) { //配置系统滴答时钟源 SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8); //选择外部时钟 HCLK/8 //设置预装载值 SysTick->LOAD = 0x895440;//时间加载 //计算…
系统时钟滴答实验很不难,我就在面简单说下,但其中涉及到了STM32最复杂也是以后用途最广的外设-NVIC,如果说RCC是实时性所必须考虑的部分,那么NVIC就是stm32功能性实现的基础,NVIC的难度并不高,但是理解起来还是比较复杂的,我会在本文中从实际应用出发去说明,当然最好去仔细研读宋岩翻译的<Cortex-M3权威指南>第八章,注意这不是一本教你如何编写STM32代码的工具书,而是阐述Cortex-M3内核原理的参考书,十分值得阅读. SysTick系统时钟的核心有两个,外设初始化和S…
uCOS2.81后的版本中有软件定时器的概念,如果要开启定时器任务,需要在OS_CFG.H文件中 #define  OS_TMR_EN                 1 软件定时器其实跟硬件中断是相似的,定时时间到了,就执行一次回调函数,虽然好用,但是也会降低系统的实时性. 软件定时器也需要一个时钟节拍驱动,这个驱动也是由硬件实现的,一般使用uCOS中的任务延时节拍驱动来驱动软件定时器,每个时钟节拍OSTmrCtr(全局变量,初始值为0)加1,当OSTmrCtr的值等于OS_TICKS_PER…
上图是LPC1114系统滴答定时器(SysTick)的结构图.系统滴答定时器位于Cortex-M0内核中,也就是说,不论是LPC1114,还是其他的Cortex-M0内核单片机,都有这个系统定时器.其存在的主要目的是为嵌入式操作系统提供100Hz(即10ms)的定时节拍.当然,也可以做为其它的普通定时等其他用途.下面是LPC1114用户手册上列举出的一些用途,你可以了解了解. 可编程设置频率的RTOS 定时器(例如100 Hz),调用一个SysTick 服务程序. 用于核时钟的高速报警定时器.…
SysTick定时器被捆绑在NVIC中,用于产生SYSTICK异常(异常号:15).在以前,大多操作系统需要一个硬件定时器来产生操作系统需要的滴答中断,作为整个系统的时基.例如,为多个任务许以不同数目的时间片,确保没有一个任务能霸占系统:或者把每个定时器周期的某个时间范围赐予特定的任务等,还有操作系统提供的各种定时功能,都与这个滴答定时器有关.因此,需要一个定时器来产生周期性的中断,而且最好还让用户程序不能随意访问它的寄存器,以维持操作系统"心跳"的节律.  Cortex‐M3处理器内…
系统滴答定时器(SysTick)中断配置 在STM32标准库中是通过SysTick_Config()函数配置时钟中断的,然后SysTick_Handler()函数自动定时触发其中的函数. if(SysTick_Config(SystemCoreClock/1000)) while(1); //////////////////////////////////////// /* 系统中断处理函数 */ void SysTick_Handler(void) { /* 定义时钟中断处理函数 */ } 库…
基于TI的DSP芯片的应用程序分为两种:一般应用程序:DSP/BIOS应用程序. 为简化编程,TI提供了一套C的编程接口,它以API和宏的形式封装了TI的所有硬件模块,这套接口统称DSP/BIOS.DSP/BIOS包含以下模块: System(包含MEM,SYS对象) Instrumentation(包含LOG,STS对象) Scheduling(包含CLK,PRD,HWI,SWI等等对象) Synchronization(包含SEM,MBX,QUE等等对象) Input/Output(包含RT…