问题列表 - 第10420页

RTOS删除练习中显式堆栈的替代方法?

在基于ARM7的C上编程的嵌入式应用程序(具有可移植性要求)中,当前使用基于商业优先级的抢占式RTOS,我们需要根据客户要求删除该RTOS和任何RTOS依赖关系.我们有8个任务使用许多HW接口,睡眠语句,I2C通信.实际上,SW很好地利用了RTOS功能来简化代码,尽管在没有RTOS的情况下可以管理时序要求.

几个函数,包括在许多地方调用的例程,当前实现阻塞(对于该线程)调用I2c驱动程序函数,睡眠语句等的序列.基于对客户不接受对I2C调用/休眠进行轮询的前提,此类调用必须然后是非阻塞并返回.问题当然是"返回"到"声明",当I2C完成或睡眠时间已经过去时,可能从顶层任务进入4次调用.

我正在为每项任务收集分层状态机设计,并在顶部安装一个简单的调度程序.但是处理几个例程,用于制作当时阻塞调用的序列,现在变成每个状态机,可以在几个地方和不同的函数调用深度调用,似乎需要为每个任务提供显式的堆栈功能,以便每次我启动子状态机时,我都可以为该进程分配状态并将它们推送到该任务的"状态堆栈",以便下一个调度程序对该任务的调用将能够完成所有分层状态继续处理它"停止"的地方.

您是否可以看到适用于该问题的其他设计架构,将代码快速移植到非抢占式范例的注意事项,或者指向富含思想的资源以及有关"RTOS移除"技术和设计的讨论?


这三个答案共同描绘了基于状态机的开发相关性和相关工具的良好画面,以避免重新发明轮子.我们的客户不会获得任何形式的许可,包括GPL.从答案中可以看出,如果想要使用没有RTOS的分层状态机并且禁止轮询呼叫,则无法绕过缓存状态.由于分层SM通过保留其结构(对例程的函数调用变为子状态机的调用)来帮助移植现有代码,所以我将使用提供的工具作为好例子.- 谢谢.

architecture embedded multithreading rtos

6
推荐指数
2
解决办法
1153
查看次数

.axd文件生成404错误

为什么我的生产服务器上的所有.axd文件都会生成404错误?

asp.net iis

13
推荐指数
3
解决办法
3万
查看次数

在Python中使用**kwargs的正确方法

**kwargs在默认值方面,在Python中使用的正确方法是什么?

kwargs返回字典,但设置默认值的最佳方法是什么,还是有一个?我应该只是作为字典访问它吗?使用get函数?

class ExampleClass:
    def __init__(self, **kwargs):
        self.val = kwargs['val']
        self.val2 = kwargs.get('val2')
Run Code Online (Sandbox Code Playgroud)

一个简单的问题,但我找不到好的资源.人们在我看过的代码中采用不同的方式,并且很难知道要使用什么.

python kwargs

415
推荐指数
11
解决办法
35万
查看次数

单元测试Xcode中的私有方法

我正在尝试玩具项目中的测试驱动开发.我可以让我的类的公共接口的测试工作(虽然我仍然在围栏,因为我正在编写比测试方法更多的测试代码).

我倾向于使用很多私有方法,因为我喜欢保持公共接口干净; 但是,我还是想对这些方法进行测试.

由于Cocoa是一种动态语言,我仍然可以调用这些私有方法,但是在我的测试中我得到警告,我的班级可能不会对这些方法做出反应(虽然它显然是这样).由于我喜欢在没有警告的情况下进行编译,因此我的问题是:

  1. 如何在Xcode中关闭这些警告?
  2. 我还能做些什么来关闭这些警告吗?
  3. 我在尝试"白盒子"测试时做错了什么?

tdd xcode cocoa objective-c ocunit

63
推荐指数
2
解决办法
1万
查看次数

SQL Server:如何使服务器检查其所有检查约束?

看起来Enterprise Manager*生成的一些脚本(或者没有,它们无关紧要)创建了检查约束WITH NOCHECK.

现在,当任何人修改表时,SQL Server都会遇到失败的检查约束,并抛出错误.

我可以让SQL通过它的所有检查约束,并检查它们吗?

运行:

sp_msforeachtable 'ALTER TABLE ? CHECK CONSTRAINT all'
Run Code Online (Sandbox Code Playgroud)

只启用以前禁用的检查约束,它实际上不会检查它们.

脚注

*SQL Server 2000

sql-server sql-server-2000 database-integrity check-constraints sp-msforeachtable

25
推荐指数
2
解决办法
2万
查看次数

BBC的边缘浏览器支持(以及为什么BBC他们不能使用jQuery)

BBC刚刚发布了他们的JavaScript库Glow.他们自己推出,因为主要的库不能充分支持旧的浏览器.

我想知道我是否应该花时间学习图书馆.其他大型机构是否有相似的法律和规则来规范它们,以防止它们使用jQuery等主流库?

javascript jquery bbc-glow

6
推荐指数
1
解决办法
625
查看次数

为什么SharePoint Designer工作流在编辑时似乎不会在SharePoint网站上更新?

我在SharePoint Designer中创建了一个工作流,当我保存它时,它很好,并按预期工作.但是,稍后在SPD中进行编辑时打开它,我可以对工作流程进行更改,非常大,并保存它,在SharePoint网站上,它显示为此工作流程的新版本,但从未反映新的更改我做到了.

例如,我创建了一个简单的测试,只需在列表中创建新项目时向我发送电子邮件.工作良好.但是,当我在电子邮件正文中添加项目查找,再次保存工作流程,并在列表中创建一个新项目时,我仍然收到一封空白电子邮件,而不是按预期在电子邮件正文中查找新项目.

是否有某种计时器与SharePoint更新工作流程?我在这里错过了什么吗?

sharepoint sharepoint-designer sharepoint-2007

4
推荐指数
1
解决办法
1万
查看次数

表和存储过程的批量重命名

我需要重命名我的所有表,存储过程以及每个存储过程中引用旧表名的代码.

为什么这是最好的方法呢?

我考虑过的一些方法:

SP_Rename - 完成一半的工作.但是,这不会更改SP本身的代码

除了RedGates的Refactor之外,我在http://www.easysqltools.com/EasySQLSmartRename.aspx找到了这套工具,它完全相同(我感觉他们的版本基于Refactor,因为UI看起来几乎完全一样相同的)在SSMS Express中运行,恰好是我运行的版本.对于大多数目的来说,15天试用应该足够了.

sql-server refactoring naming stored-procedures sql-server-2005

3
推荐指数
1
解决办法
7556
查看次数

在有序序列中获得第一个缺失元素的有效方法?

我有一个有序的序列,如{1,3,5,6,8,9}我想得到第一个缺少元素(示例中为2)或max()如果序列不包含缺失元素.现在我这样做:

public static int GetRegisterNumber<T>(this IQueryable<T> enumerable, Func<T, bool> whereFunc, Func<T, int?> selectFunc)
{
    var regNums = enumerable.OrderBy(selectFunc).Where(whereFunc).ToArray();

    if (regNums.Count() == 0)
    {
        return 1;
    }

    for (int i = 0; i < regNums.Count(); i++)
    {
        if (i + 1 != regNums[i])
        {
            return regNums[i].Value + 1;
        }
    }

    return regNums.Last().Value + 1;
}
Run Code Online (Sandbox Code Playgroud)

但我认为有更快的方法.有什么建议?

c# linq search linq-to-sql

5
推荐指数
3
解决办法
3610
查看次数

修剪前导空格,包括标签

我需要使用vbscript读取文件并删除所有前导空格,包括任何选项卡.我现在LTRIM将删除前导空格但我如何删除标签.

谢谢.

vbscript spaces trim

5
推荐指数
2
解决办法
2万
查看次数