Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
RTC
stm32F030C8T6 芯片,只运行date 查看时间挂掉!
发布于 2020-05-27 11:48:34 浏览:1768
订阅该版
* 本帖最后由 tcsun 于 2020-5-27 11:50 编辑 * ** stm32F030C8T6 芯片,只运行date 查看时间挂掉!** [硬件平台]: stm32F030C8T6 。RAM:8KB,ROM(flash):64K ,CPU内核:ARM® Cortex®-M0。 [软件平台]: rt-thread 4.0.3。 [rt-thread配置]: rtc,wdt,uart2,uart1 ,pin。 ---------------------------------------------------------------- msh >list_device device type ref count -------- -------------------- ---------- rtc RTC 0 wdt Miscellaneous Device 0 uart2 Character Device 0 uart1 Character Device 2 pin Miscellaneous Device 0 msh > ---------------------------------------------------------------------- [问题描述]: 在shell 里运行 “date" 命令程序挂掉,看门狗重启。 ------------------------------------------------------------------------------------ msh >date ===time.c te=== ===time_now=5a497a14=== --asctime_r start-- psr: 0x01000000 pc: 0x08003016 lr: 0x080086d1 r12: 0x00000000 r03: 0x08003011 r02: 0x200006a0 r01: 0x0800ac0a r00: 0x00000004 hard fault on thread: tshell thread pri status sp stack size max used left tick error -------- --- ------- ---------- ---------- ------ ---------- --- tshell 20 running 0x00000078 0x00000400 31% 0x00000001 000 tidle0 31 ready 0x00000080 0x00000100 50% 0x00000020 000 ----------------------------------------------------------------------------------------------- 不管是采用芯片板载的RTC ,还是在ENV 中配置”Using software simulation RTC device“ 情况一样。 [调试情况]: 添加打印跟踪到rt-thread\components\libc\compilers\common\time.c 里char* asctime_r(const struct tm *t, char *buf) 函数。 --------------------------------------------------------------------------------------------- char* asctime_r(const struct tm *t, char *buf) { /* "Wed Jun 30 21:49:08 1993
" */ rt_kprintf("--asctime_r start--
"); *(int *)buf = *(int *)(days + (t->tm_wday << 2)); *(int*) (buf + 4) = *(int*) (months + (t->tm_mon << 2)); rt_kprintf("--asctime_r end--
"); num2str(buf + 8, t->tm_mday); if (buf[8] == '0') buf[8] = ' '; buf[10] = ' '; num2str(buf + 11, t->tm_hour); buf[13] = ':'; num2str(buf + 14, t->tm_min); buf[16] = ':'; num2str(buf + 17, t->tm_sec); buf[19] = ' '; num2str(buf + 20, (t->tm_year + 1900) / 100); num2str(buf + 22, (t->tm_year + 1900) % 100); buf[24] = '
'; return buf; } ----------------------------------------------------------------------------------------- [内存使用情况]: ---------------------------------------------- free total memory: 3912 used memory : 1624 maximum allocated memory: 2800 ----------------------------------------------- 同样的代码编译在另一个平台上运行是没有问题,(stm32F103VET6 ,ARM® Cortex®-M3 ram:64K,flash :512K)。 [align=center] [align=center]**问一下大家,这种情况是什么原因? 请帮忙指点一二!** [align=center]**谢谢了!**
查看更多
8
个回答
默认排序
按发布时间排序
tcsun
2020-05-27
这家伙很懒,什么也没写!
[i=s] 本帖最后由 aozima 于 2020-5-27 21:20 编辑 [/i] 刚才看到一个贴子说将将Enable libc APIs from toolschain选中即可。可还是不行! ![977,169](https://www.rt-thread.org/qa/data/attachment/forum/201808/29/101159t4g05t6nncnz54jg.png)
tcsun
2020-05-27
这家伙很懒,什么也没写!
继续调调试发现,将”static const char days[] = "Sun Mon Tue Wed Thu Fri Sat "; 改为static char days[] = "Sun Mon Tue Wed Thu Fri Sat 。就OK。 但在stm32F103VET6 平台 还是定义为”static const char days[] = "Sun Mon Tue Wed Thu Fri Sat " 没有问题。 是不是因为 stm32F030C8T6 内存太小,造成ROdata 不够报错??
aozima
2020-05-27
调网络不抓包,调I2C等时序不上逻辑分析仪,就像电工不用万用表!多用整理的好的文字,比截图更省流量,还能在整理过程中思考。
楼主用的哪个工具链? GCC 还是MDK?
tcsun
2020-05-28
这家伙很懒,什么也没写!
[i=s] 本帖最后由 tcsun 于 2020-5-28 09:44 编辑 [/i] >楼主用的哪个工具链? GCC 还是MDK? --- MKD5
tcsun
2020-05-28
这家伙很懒,什么也没写!
>MKD5 --- link.sct 文件如下: ------------------------------------------ ; ************************************************************* ; *** Scatter-Loading Description File generated by uVision *** ; ************************************************************* LR_IROM1 0x08000000 0x00010000 { ; load region size_region ER_IROM1 0x08000000 0x00010000 { ; load address = execution address *.o (RESET, +First) *(InRoot$$Sections) .ANY (+RO) } RW_IRAM1 0x20000000 0x00002000 { ; RW data .ANY (+RW +ZI) } } --------------------------------------------------------------
踩姑娘的小蘑菇
2020-05-28
这家伙很懒,什么也没写!
我觉得是打印日期没加字符串结束符,访问越界了hhh 可以看看我发过的这个问题,加个'\0'改一下试试 [https://www.rt-thread.org/qa/thread-423650-1-1.html](https://www.rt-thread.org/qa/thread-423650-1-1.html)
tcsun
2020-05-28
这家伙很懒,什么也没写!
>我觉得是打印日期没加字符串结束符,访问越界了hhh >可以看看我发过的这个问题,加个'\0'改一下试试 >https:/ ... --- 感谢! 按你说的这个问题好了。 但那个程序挂的问题还没有找到。
tcsun
2020-05-28
这家伙很懒,什么也没写!
>我觉得是打印日期没加字符串结束符,访问越界了hhh >可以看看我发过的这个问题,加个'\0'改一下试试 >https:/ ... --- 首先感谢!按你说的方法修改后,程序还是会挂掉。 应不是这个问题
来日方长
2020-06-27
这家伙很懒,什么也没写!
碰到了和楼主一样的问题 希望有会的大佬指导下
来日方长
2020-06-27
这家伙很懒,什么也没写!
>继续调调试发现,将”static const char days[] = "Sun Mon Tue Wed Thu Fri Sat "; 改为static char days ... --- 采用stm32g070-st-nucleo板卡 自己移植的bsp keil5上修改该处后仍然未能解决,附上log: ``` \ | / - RT - Thread Operating System / | \ 4.0.2 build Jun 27 2020 2006 - 2019 Copyright by rt-thread team [I/drv.rtc] RTC hasn't been configured, please use
command to config. [D/drv.rtc] rtc init success [D/FAL] (fal_flash_init:61) Flash device | onchip_flash | addr: 0x08000000 | len: 0x00020000 | blk_size: 0x00000800 |initialized finish. [I/FAL] ==================== FAL partition table ==================== [I/FAL] | name | flash_dev | offset | length | [I/FAL] ------------------------------------------------------------- [I/FAL] | system | onchip_flash | 0x00000000 | 0x0001e800 | [I/FAL] | filesystem | onchip_flash | 0x0001e800 | 0x00001800 | [I/FAL] ============================================================= [I/FAL] RT-Thread Flash Abstraction Layer (V0.5.0) initialize success. [I/FAL] The FAL MTD NOR device (filesystem) created successfully msh />da date msh />date [D/drv.rtc] get rtc time. [D/drv.rtc] RTC: get rtc_time 5ef7b9ac psr: 0x01000000 pc: 0x08008432 lr: 0x08008415 r12: 0x00000000 r03: 0x5ef7b9ac r02: 0x00000001 r01: 0x0801bcfa r00: 0x00000014 hard fault on thread: tshell thread pri status sp stack size max used left tick error -------- --- ------- ---------- ---------- ------ ---------- --- tshell 20 running 0x00000138 0x00001000 09% 0x00000009 000 tidle0 31 ready 0x00000040 0x00000100 31% 0x00000003 000 main 10 suspend 0x00000098 0x00000800 26% 0x0000000b 000 ```
撰写答案
登录
注册新账号
关注者
0
被浏览
1.8k
关于作者
tcsun
这家伙很懒,什么也没写!
提问
19
回答
62
被采纳
0
关注TA
发私信
相关问题
1
RTC驱动框架几点建议
2
求助:RTT在STM32F407上使用内置的RTC设置日期需重启生效,设置时间即时生效,有遇到同样问题的吗?
3
[新人试水] LPC1768 Nano3_9 添加RTC
4
STM32 关于RTC的问题
5
stm32f4xx-HAL BSP的RTC设置不对
6
关于STM32的RTC设置年份不正确的问题
7
RTT的RTC驱动调试
8
rtc驱动中的bkp模块起不到防止时间的重新设置
9
rtc时钟跑十几个小时后,比实际时间快几秒怎么解决
10
stm32如何断电之后开发板rtc时间继续往前跑
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
使用百度AI助手辅助编写一个rt-thread下的ONVIF设备发现功能的功能代码
2
RT-Thread 发布 EtherKit开源以太网硬件!
3
rt-thread使用cherryusb实现虚拟串口
4
《C++20 图形界面程序:速度与渲染效率的双重优化秘籍》
5
《原子操作:程序世界里的“最小魔法单位”解析》
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
WIZnet_W5500
ota在线升级
UART
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
msh
SFUD
keil_MDK
rt_mq_消息队列_msg_queue
at_device
ulog
C++_cpp
本月问答贡献
踩姑娘的小蘑菇
7
个答案
3
次被采纳
a1012112796
13
个答案
2
次被采纳
张世争
9
个答案
2
次被采纳
rv666
5
个答案
2
次被采纳
用户名由3_15位
11
个答案
1
次被采纳
本月文章贡献
程序员阿伟
7
篇文章
2
次点赞
hhart
3
篇文章
4
次点赞
大龄码农
1
篇文章
2
次点赞
ThinkCode
1
篇文章
1
次点赞
Betrayer
1
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部