小编Lan*_*son的帖子

Python*.py,*.pyo,*.pyc:嵌入式系统可以取消哪些内容?

为了挤进我正在使用的嵌入式系统中可用的有限数量的文件系统存储,我想消除任何可以合理删除而不会显着影响功能或性能的文件.Python库中的*.py,*.pyo和*.pyc文件占用了相当大的空间,我想知道哪些选项对于小型嵌入式系统中的Python 2.6安装最合理:

  1. 保持*.py,消除*.pyc和*.pyo(保持调试能力,性能受损?)
  2. 保持*.py和*.pyc,消除*.pyo(优化真的可以买到什么吗?)
  3. 保持*.pyc,消除*.pyo和*.py(这会起作用吗?)
  4. 保留*.py,*.pyc和*.pyo(需要所有?)

python embedded

12
推荐指数
1
解决办法
6925
查看次数

什么是允许在嵌入式系统中进行安全软件升级的技术

升级嵌入式设备的软件通常有可能"堵塞"设备,例如,如果在将软件写入FLASH的过程中电源应该发生故障.两个问题:

  1. 实施升级机制的最佳实践是什么,以最大限度地降低设备被"砖砌"的可能性?
  2. 使升级过程成为故障安全的最佳实践有哪些,以便在将软件安装到FLASH时发生电源故障等事件可以从中恢复?

embedded reliability

11
推荐指数
1
解决办法
3211
查看次数

Bash case语法 - " - @"的含义

我不熟悉下面bash脚本片段中" - @"的语义,它来自/etc/bash_completion.d/subversion.我试图理解为什么bash报告"意外令牌附近的语法错误"(在这一行上,我有两个问题:

  1. 什么是" - @()"预计会在这里做什么?
  2. 为什么bash会对这个陈述不满意?

    case $prev in
                    # other cases omitted
        -@(F|-file|-targets))
            _filedir
            return 0;
            ;;
                    # other cases omitted
            esac
    
    Run Code Online (Sandbox Code Playgroud)

svn bash

5
推荐指数
1
解决办法
850
查看次数

使用fscanf_s时访问冲突

我想以特定格式读取文件,因此我使用fscanf_s和while循环.但是一旦fscanf_s被处理,程序就会发生访问冲突(0xC0000005)崩溃.

这是代码:

FILE *fp;
errno_t err = fopen_s(&fp, "C:\\data.txt", "r");

if (err != 0)
    return 0;

int minSpeed = 0;
int maxSpeed = 0;
char axis = '@';

while(!feof(fp)) 
{
    int result = fscanf_s(fp, "%c;%d-%d\n", &axis, &minSpeed, &maxSpeed);

    if (result != 3)
        continue;
}

fclose(fp);
Run Code Online (Sandbox Code Playgroud)

该文件的内容是基于行的,例如:

-;10000-20000
X;500-1000
S;2000-2400
Run Code Online (Sandbox Code Playgroud)

有人能帮助我吗?

c scanf

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

使用sscanf未能成功读取十六进制值

这是我的代码的简短版本:

char token[256];
unsigned int maskval = 0;

//Token gets read in here.

printf("token: %s\n", token);

if (sscanf(token + 2, "%x", &maskval) == 1) {
     //do stuff
} else {
     printf("error: %d, %x\n", maskval, maskval);
}
Run Code Online (Sandbox Code Playgroud)

如您所见,我正在将十六进制字符串传递给函数,将它们读取为令牌,然后使用sscanf()将十六进制值的字符串版本转换为无符号int。字符串令牌始终以“ 0x”,“ 0X”,“ Ox”或“ OX”开头。原因是因为用户在输入值时将无法分辨0或O之间的差异(vi用相同的图形方式显示它们)。如果将其传递为“ 0x00EE”,则得到的结果是:

token: 0x00EE
error: 0
Run Code Online (Sandbox Code Playgroud)

我相信的问题是,我是按照“ 0x00EE”还是“ OxOOEE”(零与大写o)的方式传递它。两者在vi中看起来都相同,并且我不确定在这种情况下对它们的处理是否不同。希望我只是做一些我忽略了的简单愚蠢的事情(通常是这种情况)。另外,我尝试使用

maskval = strtol(token, NULL, 16);
Run Code Online (Sandbox Code Playgroud)

而不是sscanf()但我得到的结果完全相同。

有任何想法吗?

c hex scanf

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

sscanf:从具有未知出现次数的模式中检索int

我用fstream读了一个ascii文件.一行包含至少两个以下patern重复(最多128个):

 %d %llu %d %d %llu %d %d %llu
Run Code Online (Sandbox Code Playgroud)

对于每一行,我需要行中每个模式的第三个%d的最大值

我找不到用sscanf正确完成的方法.

myFstreams->getline (buffer, MAX_BUFF-1);
while( ... ){
    sscanf (buffer," %*d %*llu %*d %d %*llu %*d %*d %*llu",&number);
    if(number>max) max=number;
    //modify buffer ???
}
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激.

c++ scanf

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

标签 统计

scanf ×3

c ×2

embedded ×2

bash ×1

c++ ×1

hex ×1

python ×1

reliability ×1

svn ×1