- 博客(14)
- 资源 (5)
- 收藏
- 关注
原创 RT_Thread 入门——nano core及finsh移植
RT_Thread入门——nanocore及finsh移植我用的是基于STM32的CubeMX之上的移植。其实大部分在RT-Thread官网的文档中心上有,详见使用 CubeMX 移植 - RT-Thread 文档中心那上面已经很详细,我就不多说。我想说的有两点,主要是finsh组件添加时发现的问题。第一是控制台信息的输出,按照文档中心的步骤配置好串口后,并未在启动时输出RT-thread的版本信息。我试了串口是好的,使用语句输出可以输出字符,但是启动时本应自动打印的版本信息并未出现,我查了..
2021-04-22 17:52:03
193
原创 关于几种新版的stm32CubeMX 配合IAR7.x编译时出错的问题。
STM32CubeMX更新很频繁,不确定从哪一个版本起,它生成的IAR7.x的代码直接编译会出现错误,大致有几种。一、如果MCU配置的是STM32F3XX,那么需要在IAR工程的Option中确认一下是否有正确的配置了MCU的型号,反正我用的5.X版本的CubeMX生成的工程打开后Device都是None,就没有对过这种情况下编译必然是错误,一堆乱七八糟的错误。需要手动的把这一项设置为对应的MCU后才有可能编译通过。二、几乎也是必出的错误,上一步设置了正确的型号后,再编译还是会有一堆错误,大
2020-07-02 11:01:45
2029
1
原创 stm32 MCU 如何将变量定义在rom中固定的位置
这个需求看起来挺奇怪的,但其实很常用,比如用来记录固件的名称和版本。通常的做法是生成bin文件后通过一些工具将固件信息附加在bin文件的末尾,供下载工具下载时进行比对,防止更新了旧的或者不对应的固件。此种方法需要在固件bin文件生成后再二次加入,存在出错的风险。比如固件内部是版本为A2,但是外部写的是A1。其实在版本号已经存放在固件内部某一个常量或者变量中了,只是这个常量的位置并不固定,每次编译都有可能变化,所以没法直接从固件中读出,如果能将这些信息固定在bin文件中的某一个位置,那么就可以直接将版...
2020-06-30 14:42:56
4859
1
原创 关于使用IDLE中断与DMA实现USART不定长字符接收的问题。
之前做过一个多串口转发的东西,MCU用的STM32F407,串口每次接收到的字符长度不定。通常的办法是使用RX中断,接到了个字符便转发一个字符。但是这有个缺点,每字符都中断会影响系统的性能,而且这种方式并不能分开每个字符串,如果是带格式的字符串,接收者无法对每一个字符串进行解析。另外一种方式就是使用DMA+IDLE中断的方式,通过DMA接收数据,通过IDLE中断来确定收到一个完整的字串。这也算是一个比较成熟的方式了,网上有很多相关资料。通常的流程是先使能IDLE中断,使能并启动DMA接收,当IDLE
2020-05-27 18:09:25
410
原创 SW4STM32生成.bin文件的方法
用SW4STM32默认情况下生成的是elf格式的文件,与其它的IDE不同,如果想要生成.bin文件或者.hex文件,需要修改一下eclipse的设置,如下图所示。该方法来源于ST的一个文档,同样附在这里,作为参考https://files.cnblogs.com/files/yexiaopeng/05_SW4STM32-tips-and-tricks.pdf...
2020-03-14 22:58:47
570
转载 直接进入TIVA系列MCU存在ROM中的bootloader的三种方法(转载)
网上查到的直接进入TIVA系列MCU存在ROM中的bootloader的三种方法,记录一下。使用 TM4C ROM bootloader 的三種方式:Flash Empty當 MCU Flash Address 0x00000004 內容值是 0xFFFFFFFF會直接進入 HW ROM Boootloader (Power ON or RESET)也就是說MCU 內是沒燒入程式或...
2019-12-07 19:52:43
813
原创 TIVA TM4C1294XL 官方bootloader例程测试方法(网口更新部分)
可能是我太笨吧,摸索了好几天,看了很长时间的代码,才懂得如何将官方的例程玩起来。。TIVA软件的example目录下有两个例程,一个是boot_emac_flash,一个是boot_demo_emac_flash,前者是bootloader,后者是下载的示范例程。此外与串口下载一样,需要LMFlashProgram这个应用程序。首先下载自然需要知道目标板的IP地址。boot_emac_...
2019-12-05 18:25:50
1227
2
原创 TIVA TM4C1294XL 官方bootloader例程测试方法(串口更新部分)
最近的项目用到Ti的TM4C1294,头一次调TI的M4,在调试bootloader的卡住了,主要是官方例程中的bootloader不知道要如何使用。官网上有bootloader的document。但是只是写的了原理和用到的函数说明,并没有对于官方例程的使用有说明。我在网上找了挺久,有零星的人问使用的问题,但是并没有对应的回答,也无后续。没办法,只能自己啃代码。。。。首先官方例程中有给出相关的...
2019-11-29 17:36:45
1752
4
原创 STM32CubeMX配合IAR7.4的STM32F429的工程编译出错的问题
CubeMX直接生成的默认工程在IAR7.4下编译出错,首个出错位置在mpu_armV7.h中,定位在函数名__STATIC_INLINE void orderedCpy(volatile uint32_t* dst, const uint32_t* __RESTRICT src, uint32_t len){ uint32_t i; for (i = 0U; i < len;...
2019-05-13 11:26:50
1884
1
转载 .sw4stm32环境下如何添加printf支持
windows使用sw4stm32环境下下遇到过重定向完成后printf没有输出的问题,网上的解决方式是添加syscalls.c。现记录备忘,新版的cubemx好像已经自动添加了syscalls.c以下为转 载:首先在安装目录下找到syscalls.c文件,将该文件放到工程的src文件下;然后需要使用串口的发送函数,编写下面的接口函数:void __io_putchar(uint8_t...
2019-05-12 16:03:32
506
原创 用IAR下载出现 Stack pointer is setup to incorrect alignment. Stack addr = 0xFFFFFFFF 如何解决?
今天调试别的人的工程出现这个问题,我按网上的方法修改了两处地方,修改了第二处之后就好了,不确定第一处有没有起作用。第一处.工程生成的程序输出 .out 文件,不包含调试信息和地址信息,需要生成 .hex 文件解决方法将 .out 换成 .hex,保存 Rebuild all ,确认工程文件夹中生成了 .hex 文件,重新改回 .out, 重新进行 Debug,不再出现warning...
2019-03-06 14:18:23
4889
原创 DPInst中关于删除的说明
DPInst本身是不可以卸载设备的,它只可以卸载安装包,不能将设备节点从设备管理器中删除。在XP中,可以通过/d选项将inf文件中所拷贝的二进制文件删除掉,但是在Windows7中,会乎略掉这个选项,因此执行dpinst不会卸掉设备。需要通过脚本将涉及的二进制文件手动删除。删除设备节点,微软建议使用SetupAPI来进行。详细内容可以参考以下文档http://msdn.microsof
2013-07-04 16:27:22
1394
原创 真彩转256色
准备一个长度为4096的数组,代表4096种颜色。对图中的每一个象素,取R、G、B的最高四位,拼成一个12位的整数,对应的数组元素加1。全部统计完后,就得到了这4096种颜色的使用频率。其中,可能有一些颜色一次也没用到,即对应的数组元素为零(假设不为零的数组元素共有PalCounts个)。将这些为零的数组元素清除出去,使得前PalCounts个元素都不为零。将这PalCounts个数按从大到小的顺
2007-04-26 16:35:00
1238
原创 由数组数据创建一个灰度位图并保存
如题,数组为字节型,每元素大小为灰度值。关键是调色版的创建与填充void CCustemCtrl3Dlg::OnButton2() { #define WIDTHBYTES(bits) (((bits) + 31) / 32 * 4) // TODO: Add your control notification handler code here int i,j; BYTE* m_
2007-04-13 14:13:00
1689
2
JLink_Windows_V662c.7z
2020-02-24
热电阻阻值温度互换工具
2018-09-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人