执行保存上下文的工作不在这里,这里负责处理调度的逻辑,就是该去调度那个线程。
保存线程上下文:
我只说我熟悉的cortex-M3是在PendSV_Handler中,这个其实是个软中断。另外想知道调度原理的,建议先找个熟悉的CPU去看下CPU指南,不是那种教你怎么使用功能的而是讲背后原理的。cortex-M3就看《CM3权威指南》。
这里会告诉你发生中断了CPU会保存部分寄存器,然后你在保存一部分。
我看没人回复,来说下,还望大神来亲自指点.
发布于10年前
执行保存上下文的工作不在这里,这里负责处理调度的逻辑,就是该去调度那个线程。
保存线程上下文:
我只说我熟悉的cortex-M3是在PendSV_Handler中,这个其实是个软中断。另外想知道调度原理的,建议先找个熟悉的CPU去看下CPU指南,不是那种教你怎么使用功能的而是讲背后原理的。cortex-M3就看《CM3权威指南》。
这里会告诉你发生中断了CPU会保存部分寄存器,然后你在保存一部分。
我看没人回复,来说下,还望大神来亲自指点.
发布于10年前
是打开的在lwipopts.h中
我比较奇怪的是select之后去recvfrom却没有数据。
发布于10年前
不知道我这样设置对不对,不好我测试了
还是阻塞的。
只要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
我的顺序应该是对的吧?
发布于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应该适合多点数据。
问 执行“执行调度函数”时,需要先对”处理机的现场信息“进行保存吗?