
嵌入式微控制器编程
文章平均质量分 90
qq_41256212
留下存在的证据
展开
-
烧录文件bin、Motorola、hex格式介绍及解析
微处理器一般又称单片机,其可以根据人们编写的代码执行相关的逻辑操作。程序员将产品的逻辑操作抽象为C代码,然后通过编译器的编译和链接,生成微处理器可执行的机器码。通常编译器封装的不带调试信息的机器码有3种格式,分别为bin、motorola、hex,下面将分别介绍其特点:1、Bin格式: Bin文件是二进制文件,是编译器生成的机器码文件,烧录工具可以直接读取该文件的内容而不用解析...原创 2019-01-23 14:34:11 · 10952 阅读 · 3 评论 -
微处理器程序调度设计
什么样是好的系统呢?笔者认为有2点,1是让微处理器在单位时间内处理更多的任务,2是程序易于维护。 在早期的程序设计中,就是一个简单的while(1),然后一直执行应用代码,这就是裸机系统。后来由于裸机系统的功能越来越复杂,代码的可维护性变得越来越差,任务的调度也变得不理想,于是人们就发明了操作系统。基于操作系统的程序设计相对比较简单,但其资源开销较大,CPU利用率较低。下面将分别介绍裸机系统...原创 2019-01-30 17:19:31 · 338 阅读 · 0 评论 -
ECU Bootloader程序设计
简介:Bootloader是独立于应用程序的一个项目工程,其提供应用程序离线升级的功能,如果没有Bootloader就不能进行程序升级,如果应用软件有缺陷只能拆盖通过仿真器进行烧写(更有严重者甚至需要把硬件看门狗电阻去掉),所以Bootloader使软件更加易于维护。 设计Bootloader程序时,一般需要考虑如下3个要点:设计Bootloader与升级上位机间的数据交互协议 ...原创 2019-01-31 09:56:09 · 5771 阅读 · 0 评论 -
一种简单FIFO队列实现方式及事例
在写程序中,经常会遇到缓存队列问题,需将数据缓存到队列中,且队列中的数据不能被覆盖,然后另一个任务会从队列中依次读出所有数据(按照先进先出的原则FIFO)并进行处理。本章将实现一种数据大小固定的FIFO数据缓存队列,其本质思想是用2个空指针管理队列头和队列尾,还有一个队列计数用于统计队列数目。其程序代码如下所示:头文件为 simpleQueue.h,其内容如下所示:#ifndef __SI...原创 2019-02-22 14:31:05 · 2555 阅读 · 0 评论 -
keil 将函数与数据放在固定地址的方法
本章内容截取于keil帮助文档,希望对你有帮助Methods of placing functions and data at specific addressesNon-Confidential PDF version ARM 100070_0607_00_en ARM® Compiler armlink User Guide Version 6.7...转载 2019-02-26 14:19:17 · 8173 阅读 · 2 评论 -
armasm 命令选项 --cpreproc 及 --cpreproc_opts说明
笔者在keil上移植CMSIS DSP函数库时,会出现如下报错信息:打开arm_bitreversal2.S 发现该代码的开头是一些C语言中常见的条件编译和宏定义,如下所示:#if defined ( __CC_ARM ) /* Keil */ #define CODESECT AREA ||.text||, CODE, READONLY, ALIGN=2...原创 2019-07-07 19:09:20 · 3377 阅读 · 0 评论 -
printf重定向、仿printf函数、调试宏
1、printf函数重定向 在用电脑学习C语言时,我们经常使用printf函数来打印调试信息,比如某个变量的值,屏幕将显示该变量的值。在学习微处理器编程时,我们是否也能使用printf函数来打印调试信息呢?那当然是可以的。我们可以重定向printf函数,使其调试信息输出到串口上,然后通过串口调试助手来观察调试信息。printf函数底层调用fputc来输出调试信息,因此我们可以...原创 2019-07-22 22:10:13 · 945 阅读 · 0 评论 -
MPC5746C双核启动配置分析
MPC5746C内部集成了一个BAF(Boot Assist Flash)小工具(代码)(这个有点像Bootloader),BAF主要用于管理多核CPU的启动,其原理是寻找特定地址的启动头,查看并根据启动头的配置信息来启动CPU内核。启动头的地址如下所示:启动头的配置结构如下所示:启动头配置字节如下所示:CPU编号与MPC5746C内核的对...原创 2019-08-06 17:01:00 · 4133 阅读 · 19 评论