jeffwei
jeffwei

注册于 10 years ago

回答
1
文章
0
关注者
0

原理图没改吧

自己都买了一个STM32F417ZG的核心板练手了,IAR开发,自建工程,LED没问题,USART却不通.......

用这个调试吧,类c转义输入, 例如 list()\0d

错过了收音机,失去跟进RTT的好机会,这回一定要预定一套

bootloader中一般不要使用中断或一定要在跳到APP前关闭(要关闭外设,而不是只关总中断)。

记住了,谢谢指导,这个是我写的第一个bootloader,没经验。

发现问题原因了,bootloader的定时器中断引起的。
这样发现的
调试的时候,RTT的程序中断调试,板子断电重启,然后点击运行,再中断运行,发现停在定时器中断,于是屏蔽bootloader的定时器中断,发现问题解决。
谢谢上面各位大侠的指导!

不习惯用KEIL,搞了好一会才把工程建好,结果不行啊
offset倒是0X8000F000

你那个NVIC_SetVectorTable放在
startup.c
rtthread_startup()里面的rt_hw_board_init()里面的NVIC_Configuration()那个地方就OK啦。
你说的那个东西我也做过。应该是没有问题的。如果有问题的话。那你就是那个烧写的地址不对


位置是boad.c
void NVIC_Configuration(void)
{
#ifdef VECT_TAB_RAM
/* Set the Vector Table base location at 0x20000000 */
NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0);
#else /* VECT_TAB_FLASH */
/* Set the Vector Table base location at 0x08000000 */
// NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);
NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0xF000);
#endif
}

刚刚下班吃饭去了,才试了一下
stm32f10x.h中看到这个

#define  SCB_VTOR_TBLOFF                     ((uint32_t)0x1FFFFF80)        /*!< Vector table base offset field */


jlink看不到0x1FFFFF80这里的值

void SystemInit (void)当中有

 SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal FLASH. */

修改后下面的定义后依然无效
#define VECT_TAB_OFFSET  0xF000 /*!< Vector Table base offset field. 

不知道这个有没有套件或者成品板子,希望买一套学习RTT和RTGUI,尤其是RTGUI。

这个多注意硬件的问题。如果怀疑软件有问题,那么可以自己先行写个小的串口代码,没问题了去替换驱动相关部分即可。RT-Thread在串口驱动这块没太多的花样

只要0D不要0A试试?

我的也不正常呢,发送list(),经常返回m -)

有一次的结果是

\ | /
- RT - Thread Operating System
/ | 1.0.0 build Jan 7 2012
2 - 2011 Copyright by rt-thread m
rtc is not configured
please configure w set_date and set_time
finsh>>??靠)

明白了。
自己软件不行,就学了C,C++才看了几章,没法贡献代码。
linux没有系统学过,用了4年了。

发布
问题