OXape
OXape
这家伙很懒,什么也没写!

注册于 12年前

回答
21
文章
0
关注者
0

发布于10年前

执行保存上下文的工作不在这里,这里负责处理调度的逻辑,就是该去调度那个线程。
保存线程上下文:
我只说我熟悉的cortex-M3是在PendSV_Handler中,这个其实是个软中断。另外想知道调度原理的,建议先找个熟悉的CPU去看下CPU指南,不是那种教你怎么使用功能的而是讲背后原理的。cortex-M3就看《CM3权威指南》。
这里会告诉你发生中断了CPU会保存部分寄存器,然后你在保存一部分。
我看没人回复,来说下,还望大神来亲自指点.

发布于10年前

是打开的在lwipopts.h中

  1. #define LWIP_SO_RCVTIMEO 1

我比较奇怪的是select之后去recvfrom却没有数据。

发布于10年前

  1. setsockopt( udp_sock, SOL_SOCKET, SO_RCVTIMEO, &timeout, sizeof( struct timeval ) )

不知道我这样设置对不对,不好我测试了

  1. timeout.tv_sec = 0;
  2. timeout.tv_usec = 0;

还是阻塞的。
只要timeout.tv_sec>0是立即返回没有等待。
我看了recvfrom里有一个MSG_DONTWAIT。暂时先用这个flag吧。还是希望有个大神来指教下。

发布于10年前

找到问题:
在server线程select的时候有一个udp socket用来接受广播数据。
当select之后用FD_ISSET判断是udp的数据才去调用recvfrom。不过现在的结果是卡在recvfrom上了。不知道这是为什么。
我先给udp socket加一个才接受超时。

发布于10年前

在发帖前我在论坛搜了下,没收到。如果不是线程安全那我在想办法。

发布于10年前

如果覆盖了旧的数据就应该修改read_index.不然再次读数据时就会造成错误。

发布于11年前

TIM3肯定是没配置好的(最小系统的话),时钟也应该是72M,楼主可以去找启动代码。

发布于11年前

RTT版本是1.1.0,应该不是ART上的,是魔笛开发板的例程。

发布于11年前

error detected and set to -2/0 (cmd = 8),0x00000004
error detected and set to -2/0 (cmd = 5),0x00000004
error detected and set to -2/0 (cmd = 8),0x00000004
不知道这些代表会引起什么,SD是可以读的,就是写时会挂机。卡在一个信号量上。

发布于11年前

已经在用libroxml了,自己改了下,不过总感觉解析xml不靠谱啊。

发布于11年前

hard_fault应该是我的驱动的原因。

发布于11年前

我mount时都是hard_fault

  1. #ifdef RT_USING_DFS
  2. #ifdef RT_USING_SPI
  3. {
  4. extern void rt_hw_spi1_init(void);
  5. rt_hw_spi1_init();
  6. }
  7. w25qxx_init("flash0", "spi10");
  8. rt_device_init_all();
  9. dfs_init();
  10. #endif
  11. #ifdef RT_USING_DFS_ELMFAT
  12. elm_init();
  13. if (dfs_mount("flash0", "/", "elm", 0, 0) != 0)
  14. {
  15. rt_kprintf("flash0 mount to / failed!, fatmat and try again!
  16. ");
  17. /* fatmat filesystem. */
  18. dfs_mkfs("elm", "flash0");
  19. /* re-try mount. */
  20. if (dfs_mount("flash0", "/", "elm", 0, 0) != 0)
  21. {
  22. rt_kprintf("flash0 mount to / failed!
  23. ");
  24. }
  25. }
  26. #endif

我的顺序应该是对的吧?

发布于11年前

在早期,mkfs时,仅从mount table里面find,而不是从系统里面find。
需要先mount(此时mount并不做文件系统的检查),然后再mkfs。

现已修改为:不管是否mount,都可以mkfs,建议先mkfs再mount,或已经mount的先unmount再mkfs再mount回。
同时,mount时会做格式,如果没有系统,或已完全损坏,则mount不成功。
相关修改见:https://github.com/RT-Thread/rt-thread/commit/5646189b29cb552654387ee7eac22f1299e35347


请问最早的修改过的,是哪个版本?

发布于11年前

谢谢回复,我看看。

发布于11年前

后来我就把那些一个一个发的改了,改成拼到一起发。能用了。DMA比如多次连续发少量数据是不是会出错啊。感觉DMA应该适合多点数据。

回到
顶部

发布
问题

投诉
建议