随笔分类 -  Infineon - TC2xx

摘要:基于TC297的FreeRTOS移植工程分享 阅读全文
posted @ 2022-05-05 10:41 凉风SK 阅读(965) 评论(0) 推荐(2)
摘要:【任务创建】 1.创建任务控制块TCB 2.为任务申请堆栈空间并将起始地址存到任务控制块中(pxNewTCB->pxStack = pxStack) 3.调用prvInitialiseNewTask()函数 1) 通过NewTCB.pxStack计算栈顶指针pxTopOfStack并将其对齐; 2) 阅读全文
posted @ 2020-03-05 19:47 凉风SK 阅读(941) 评论(0) 推荐(0)
摘要:在上一篇文章中介绍了软件中断管理与硬件中断管理,但是硬件中断的内容遗漏了一部分:iLLD下的硬件中断管理,在此进行补充。 首先说明一下中断管理代码的位置,以明确整体架构。 iLLD | - - - IfxCpu_Irq.c + CompilerGnuc.h 软件中断管理 | - - - Compil 阅读全文
posted @ 2020-02-20 15:24 凉风SK 阅读(2693) 评论(2) 推荐(0)
摘要:本文主要分析TC1.6内核架构下的中断管理方式,包括两种:硬件管理方式和软件管理方式。 本文首先简要介绍TC1.6内核的中断系统,以此为基础便于后面的理解;然后通过对两种中断管理方式对应的代码的分析,分别说明硬件管理和软件管理方式的原理;最后总结两者的特点及二者之间区别。 一、TC1.6系列内核中断 阅读全文
posted @ 2020-02-15 16:26 凉风SK 阅读(4141) 评论(0) 推荐(2)
摘要:首先,完成了串口向终端putty的打印函数ConsolePrint(),但该函数只能打印字符串,无法像stdio库中的printf函数一样打印整数和浮点数等。 因此,我先是使用了标准库stdio中的sprintf函数。该函数可以将所要打印的数字格式化成对应的字符串并存储到字符串数组中,如sprint 阅读全文
posted @ 2019-12-04 17:02 凉风SK 阅读(690) 评论(0) 推荐(0)
摘要:通过实际测试,对TC297 Flash的一个地址空间可以重复执行写入操作(program),而不需要先对该区域所在扇区进行擦除。 MPC5675K则需要在写入之前进行擦除。 阅读全文
posted @ 2019-09-24 21:22 凉风SK 阅读(982) 评论(1) 推荐(0)
摘要:1.MEMORY关键字用于描述一个MCU ROM和RAM的内存地址分布(Memory Map),MEMORY中所做的内存描述主要用于SECTIONS中LMA和VMA的定义。 2.SECTIONS关键字用于定义output section(输出段)的相应input section(输入段)、LMA和V 阅读全文
posted @ 2019-09-15 12:02 凉风SK 阅读(12991) 评论(6) 推荐(2)
摘要:PC(program counter)是CPU中用于存放下一条指令地址的寄存器,SP为堆栈指针。下面将介绍函数调用过程中CPU对PC和SP这两个寄存器的操作。 假设有如下函数Fun 当函数Fun调用其子函数sub-fun时,CPU内部执行情况如下: 1. 执行CPU指令push,将参数a、b入栈,即 阅读全文
posted @ 2019-09-08 22:01 凉风SK 阅读(10131) 评论(2) 推荐(3)
摘要:将函数载入到RAM中运行需要以下三个步骤: (1)用编译器命令#pragma section "<section name>" <user functions> #pragma section 将想要载入RAM运行的函数存储为自定义段名的程序段,其中ax是#pragma section命令中的可选设 阅读全文
posted @ 2019-09-05 11:19 凉风SK 阅读(2591) 评论(1) 推荐(2)
摘要:TC297的系统架构图如下,3个核CPU0/1/2有各自的RAM,分为程序RAM和数据RAM,即PSPR和DSPR。PSPR(或者叫做PRAM)主要用于放置静态函数,提高函数执行效率,或放置flash驱动函数以擦写flash(可参考官方Flash Demo);DSPR主要用于全局变量、现场保护的上下 阅读全文
posted @ 2019-09-04 21:18 凉风SK 阅读(8090) 评论(0) 推荐(1)
摘要:可执行文件中的.bss段和.data段分别存放未赋初值的全局变量和已赋初值的全局变量,两者的特点分别为: (1).bss段:①无初值,所以不占ROM空间;②运行时存储于RAM;③默认初值为0 (2).data段:①占用ROM空间,用于存放初值;②运行时存储于RAM;③程序启动时将其初值从ROM载入到 阅读全文
posted @ 2019-09-03 20:53 凉风SK 阅读(3800) 评论(0) 推荐(0)
摘要:打开例程,目录树下的Includes中包含了各个片上资源对应的头文件,这些头文件定义了相应外设的寄存器地址(寄存器是内置于各个 IP 外设中,是一种用于配置外设功能的存储器,就是一种内存,并且有相对应的地址。——野火)以及操作寄存器的方法——结构体。 1.IfxPort_reg.h:定义Port寄存 阅读全文
posted @ 2019-01-29 20:17 凉风SK 阅读(1158) 评论(0) 推荐(2)