-
谢谢论坛和是德科技,确认个人信息无误。
-
确认个人信息无误,感谢EE
-
缺RTS(运行时支持)库
-
楼主很6啊
-
别做电子了,趁早转计算机,比电子有前途的多,当然,前提是你得有兴趣
-
:)点赞点赞
-
如果是直流电源,在两个电源的正极加一个肖特基二极管,然后同时接负载即可
-
LL_SPI_Enable(SPI)和LL_SPI_Disable(SPI)是开启和关闭SPI模块吧,如果是,那就不要使用这种方式,因为不写入SPI的数据寄存器时,SPI模块根本不会输出时钟
-
楼主也是6,第一次看到求助帖还要花芯币买主题了才能看到问题
-
看来楼主才开始学嵌入式linux啊,同新手
-
windows下是不区分文件名大小写的,所以才会出现你这样的问题
-
应该是某个头文件里面声明的函数没有")",到头文件里面看下,还有一般好像不会去用ioxxxx类的头文件,一般都是用以MCU名命名的头文件
-
参加过两次,一次做控制一次做电源,已经不关注电赛了,也不知道现在电源类和控制类有多难
-
没啥大问题,就是解压IAR库的源码,解压不成功也不影响使用,如果不想每次打开IAR都提示这个,把对话框左下角的Don't notify me again选上就可以了
-
基于ARM Cortex M3的单片机在复位后会在0x00000000地址处取出4字节的内容放到哪个寄存器里?
-
这是端口复用,第一个有两个功能,第二个有三个功能,使用SBW下载程序时第二个(SBWTDIO)是数据线,还需要SBWCLK这个时钟线才能下载
-
楼主省省吧,谁没事来反汇编这么长的汇编代码
-
本帖最后由 LSJ.Micro 于 2018-1-21 01:34 编辑
1、如果是使用的flash的cmd,那么调试下载时肯定会下载到Flash中,如果不是,那么证明你的CMD文件有问题
2、CCS有编译器语法#pragma CODE_SECTION(function_name, "ramfuncs");其中function_name为函数名,这句话一般放在要在RAM中运行的函数的前面,实现在RAM中运行还有一个条件就是手动拷贝ramfuncs section到RAM中,可以使用TI库里面提供的MemCopy函数,也可以使用C库里面提供的memcpy函数,但这两个函数的入口参数有不同,自己注意下就可以了,
另外,调用TI库里面提供的函数时一般如下:
MemCopy(&RamfuncsLoadStart,&RamfuncsLoadEnd, &RamfuncsRunStart);
-
"移植成功之后不是可以立刻跑分的,需要修改堆栈的大小,一般堆跟栈都大于0x1000就可以了,L4+板子的FLASH大,设置大点没关系:"
纠正楼主一下,堆和栈是在RAM里面的,跟Flash(ROM)没半毛钱关系。
-
(1)库里的这两个函数我没用过也不知道能不能达到软件复位的效果,但其实直接看STM32的参考手册就可以知道如何设置寄存器达到软件复位的效果,当然,你也可以去看库手册。
(2)不通过在RST引脚上产生低电平来达到从App跳转到Bootloader方法有两种,
1、通过函数调用,直接将Bootloader开始处的地址强制转化成函数指针来调用(此方法需要重新设置堆栈指针,其实不设问题也不大);
2、通过内联汇编,使用C内联汇编代码直接设置PC指针的内容为Bootloader的起始地址。
其实上面的两种方法本质上来说是一种,都是通过改变PC指针的内容来达到目的,只不过一个会涉及到栈指针的变化一个不会。