1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
使用的master分支下的代码,通过 6ull bootloader 中的tftp获取kernel后能正常运行,并挂载emmc,和sd卡。
\ | / - RT - Thread Smart Operating System / | \ 5.2.0 build Jul 5 2024 05:55:07 2006 - 2024 Copyright by RT-Thread team lwIP-2.1.2 initialized! [142] E/gt911: Can't find i2c3 device [150] I/sal.skt: Socket Abstraction Layer initialize success. [156] I/drivers.serial: Using /dev/ttyS0 as default console [216] I/SDIO: SD card capacity 15558144 KB. [229] I/SDIO: sd: switch to High Speed / SDR25 mode found part[0], begin: 4194304, size: 14.853GB [282] I/SDIO: emmc card capacity 7634944 KB, card sec count:15269888. [291] I/SDIO: emmc: switch to HIGH Speed mode found part[0], begin: 10485760, size: 500.0MB found part[1], begin: 629145600, size: 6.712GB emmc file system initialization done! sd0 file system initialization done! open em failed! hello rt-smart 在userapps中添加led_test.c,代码如下: #include "led_test.h" #define LED_PIN GET_PIN(1,3) int main() { rt_device_t pin_dev; struct rt_device_pin_mode pin_mode; struct rt_device_pin_status pin_status; pin_dev = rt_device_find("pin"); if (pin_dev == RT_NULL) { rt_kprintf("not find pin device!\n"); return -1; } rt_device_open(pin_dev, RT_DEVICE_OFLAG_RDWR); pin_mode.pin = LED_PIN; pin_mode.mode = 0; rt_device_control(pin_dev, 0 ,(void*)&pin_mode); pin_status.pin = LED_PIN; while(1) { pin_status.status = 0; rt_device_write(pin_dev, 0 ,(void*)&pin_status, sizeof(pin_status)); rt_thread_mdelay(200); pin_status.status = 1; rt_device_write(pin_dev, 0 ,(void*)&pin_status, sizeof(pin_status)); rt_thread_mdelay(200); } rt_device_close(pin_dev); return 0; } 将Userapps 下的hello 和 led 编译后放到sd卡中,kernel运行后运行hello正常,但是运行led,程序直接崩溃了。 msh /sd0>./hello msh /sd0>hello world! test msh /sd0>./led msh /sd0>Function[rt_aspace_fault_try_fix]: scheduler is not available thread pri status sp stack size max used left tick error tcb addr -------- --- ------- ---------- ---------- ------ ---------- ------- ---------- led 25 running 0x00000048 0x00004000 10% 0x000000bc OK 0xc01a0990 tshell 20 suspend 0x0000023c 0x00001000 59% 0x00000008 OK 0xc0197b1c tsdcard 30 suspend 0x0000011c 0x00000800 31% 0x00000014 EINTRPT 0xc0196a38 wlan 15 suspend 0x000000e8 0x00000800 11% 0x0000000a OK 0xc019290c ttywork 3 suspend 0x000000e8 0x00001000 05% 0x0000000a OK 0xc0191754 mmcsd_de 22 suspend 0x00000138 0x00001000 41% 0x00000004 EINTRPT 0xc018028c sys wor 23 suspend 0x000000e8 0x00001000 05% 0x0000000a OK 0xc019059c tcpip 10 suspend 0x00000180 0x00002000 05% 0x00000014 EINTRPT 0xc018e3e4 erx 12 suspend 0x00000138 0x00002000 03% 0x00000010 EINTRPT 0xc01731ac pcache 25 suspend 0x00000170 0x00002000 05% 0x00000005 EINTRPT 0xc018c1c4 tidle0 31 ready 0x0000007c 0x00002000 11% 0x00000015 OK 0xc01818e8 timer 4 suspend 0x00000130 0x00001000 07% 0x00000008 EINTRPT 0xc0183d00 backtrace: 0xc00caf70 @ assert_handler 0xc00caf74 @ assert_handler 0xc010ba8c @ rt_assert_handler 0xc006ed74 @ rt_aspace_fault_try_fix 0xc00c9f44 @ check_data_abort 0xc00ca3a8 @ rt_hw_trap_dabt 怀疑是led测试程序的问题,然后将这部分功能直接放到kernel中,通过msh来调用,是可以正常运行的。 看了下运行报错的地方,没太搞懂是为啥出现了这个情况, 有大佬能解答一下么 |
|
相关推荐
2个回答
|
|
可以在内核层面加些log看看。出错时的栈回溯是有的,像是访问了非法地址
|
|
|
|
根据你提供的信息,ART-PI Smart User运行LED程序崩溃可能由以下几个原因导致:
1. **硬件问题**:如果硬件连接不稳定或损坏,可能导致程序运行时出现问题。检查LED连接和电源供应是否正常。 2. **驱动问题**:错误日志中提到`[142] E/gt911: Can't find i2c3 device`,这表明系统无法找到I2C3设备。如果LED控制依赖于这个I2C设备,那么驱动问题可能是导致程序崩溃的原因。检查I2C3设备的连接和配置是否正确。 3. **软件问题**:可能是程序代码中存在bug,或者软件与硬件不兼容。检查代码是否有逻辑错误或不恰当的硬件操作。 4. **系统问题**:系统日志显示`lwIP-2.1.2 initialized!`,表明网络协议栈已经初始化。如果LED程序依赖网络功能,需要确保网络配置正确。 5. **权限问题**:确保运行程序的用户有足够的权限访问所需的硬件资源。 处理方法: - **检查硬件**:重新检查LED和I2C3设备的连接,确保没有物理损坏或连接错误。 - **更新或重新安装驱动**:如果怀疑是驱动问题,尝试更新或重新安装I2C3的驱动。 - **调试程序**:使用调试工具检查程序运行时的行为,查找可能导致崩溃的代码段。 - **检查系统配置**:确保系统配置正确,特别是与LED和I2C3设备相关的配置。 - **查看错误日志**:错误日志中可能包含更多关于崩溃原因的线索。检查系统日志以获取更多信息。 - **咨询社区或技术支持**:如果问题依然无法解决,可以在RT-Thread社区或相关技术支持论坛寻求帮助。 - **回退到稳定版本**:如果问题出现在最近的更新后,可以尝试回退到之前的稳定版本。 - **隔离问题**:尝试在最小系统配置下运行LED程序,逐步增加配置以确定问题来源。 最后,由于你提到使用master分支下的代码,如果问题持续存在,可以考虑切换到其他分支或标签(tag),看看是否有不同的结果。 |
|
|
|
只有小组成员才能发言,加入小组>>
155个成员聚集在这个小组
加入小组【Vision Board创客营连载体验】基于RA8D1-Vision Board的自动路径规划小车
900 浏览 0 评论
【Vision Board创客营连载体验】基于Vision Board的垃圾分类
1300 浏览 0 评论
【Vision Board创客营连载体验】使用 Vision Board 做一个 UVC Camera
930 浏览 0 评论
【Vision Board创客营连载体验】TinyMaix进行手写数字识别
1196 浏览 0 评论
【Vision Board创客营连载体验】RA8D1-Vision Board使用7寸屏设置为RGB666大端模式模式成功显示摄像头图案
1203 浏览 0 评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-21 23:56 , Processed in 0.606866 second(s), Total 82, Slave 65 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号