嵌入式及手机开发[笔试题目]

诺瓦星云一面面经 岗位嵌入式软件开发(Linux方向) 晒一晒我的offer#8.10开始,投递了150多公司,收到10个公司面试,拿到1个意向(牛马工通行证) #求职# 本人双211,本科非科班,有项目经历、两段。#基恩士#我点进去笔试的题目,发现需要纸和笔,但我身边没有笔和纸,我就拿了ipad和笔当草稿纸写的,,,我淦,我服了我自己了,连根笔都没有。该题的大致思路是将数组中的n个元素视为小球,收到测评48小时内完成一共有6关:一、数字排序二、投影三视图三、飞行四、瞄准五、路径六、数理挺有趣的,但是不简单,需要多刷刷题,不然过不了的题库用完了,需要的d。 阅读详情

嵌入式及手机开发[笔试题目]
千辛万苦搞来的,不过很多题目都见过了,比如《想成为嵌入式程序员应知道的0x10个基本问题》上面的

。所以有些答案就可以直接去http://blog.youkuaiyun.com/ShorminHsu/archive/2007/03/24/1539458.aspx 找。
这里先放上题目,答案等后期整理出来吧。

题目:
1。用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)。

2。写一个"标准"宏MIN ,这个宏输入两个参数并返回较小的一个。

3。预处理器标识#error的目的是什么?

4。嵌入式系统中经常要用到无限循环,你怎么样用C编写死循环呢?

5。写一个数据类型:一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个

整型数。

6。嵌入式系统总是要用户对变量或寄存器进行位操作。给定一个整型变量a,写两段代码,第一个设置a

的bit 3,第二个清除a 的bit 3。在以上两个操作中,要保持其它位不变。

7。嵌入式系统经常具有要求程序员去访问某特定的内存位置的特点。在某工程中,要求设置一绝对地址

为0x67a9的整型变量的值为0xaa66。编译器是一个纯粹的ANSI编译器。写代码去完成这一任务。

8。字符串倒序。

9。float a,b,c    问下列两个的值:
      (a+b)+c == (b+a)+c
      (a+b)+c == (a+c)+b

10。关键字static的作用是什么?
        关键字const有什么含意?

11。关键字volatile有什么含意?并给出三个不同的例子。
         1)一个参数既可以是const还可以是volatile吗?解释为什么。
         2) 一个指针可以是volatile 吗?解释为什么。
         3)下面的函数有什么错误:
 int square(volatile int *ptr)
 {
         return *ptr * *ptr;
 }

12。嵌入式系统经常具有要求程序员去访问某特定的内存位置的特点。在某工程中,要求设置一绝对地址

为0x67a9的整型变量的值为0xaa66。编译器是一个纯粹的ANSI编译器。写代码去完成这一任务。

13。动态内存分配
下面的代码片段的输出是什么,为什么?
 char *ptr;
 if ((ptr = (char *)malloc(0)) == NULL)
     puts("Got a null pointer");
 else
      puts("Got a valid pointer");

14。Typedef 在C语言中频繁用以声明一个已经存在的数据类型的同义字。也可以用预处理器做类似的事。

例如,思考一下下面的例子:
 #define dPS struct s *
 typedef struct s * tPS;
以上两种情况的意图都是要定义dPS 和 tPS 作为一个指向结构s指针。哪种方法更好呢?(如果有的话)

为什么?

15。中断是嵌入式系统中重要的组成部分,这导致了很多编译开发商提供一种扩展—让标准C支持中断。具

代表事实是,产生了一个新的关键字 __interrupt。下面的代码就使用了__interrupt关键字去定义了一个中断

服务子程序(ISR),请评论一下这段代码的。

 __interrupt double compute_area (double radius)
 {
     double area = PI * radius * radius;
     printf("/nArea = %f", area);
     return area;
 }


16。下面的代码输出是什么,为什么?
 void foo(void)
 {
     unsigned int a = 6;
     int b = -20;
     (a+b > 6) ? puts("> 6") : puts("<= 6");
 }

17。评价下面的代码片断:
 unsigned int zero = 0;
 unsigned int compzero = 0xFFFF;
 /*1s complement of zero */

18。C语言同意一些令人震惊的结构,下面的结构是合法的吗,如果是它做些什么?
 int a = 5, b = 7, c;
 c = a+++b;

19。编写一个可重入的函数。

20。编写ISR需要注意哪些地方?

21。如何设计一个内存拷贝函数,考虑效率及强健性原则。

22。怎样理解"地址对齐","内存分配","处理器字节序"的意义,应用上有什么需要注意的地方吗?举例。
         如何测试一个处理器的字节序?

23。至少举两个例子从硬件和微码执行的角度说明CPU响应中断的过程。

24。如何实现任务调度?

25。如何避免优先级反转?

26。任务锁和终端锁之间的区别,应用上应该怎么去选择?

27。进程间通讯与同步的手段有哪些?举例说明。

 

以上部分答案参考 :
《想成为嵌入式程序员应知道的0x10个基本问题》
http://blog.youkuaiyun.com/ShorminHsu/archive/2007/03/24/1539458.aspx

其余待整理。 



Trackback: http://tb.blog.youkuaiyun.com/TrackBack.aspx?PostId=1693061

#     ShorminHsu 发表于2007-07-24 11:36:39  IP: 59.40.32.*
1 . 预处理问题
用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)
#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL

1) #define 语法的基本知识(不能以分号结束,括号的使用,等等)
2)预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年中有多少秒而不是计算出实际的值,是更清晰而没有代价的。
3) 这个表达式将使一个16位机的整型数溢出-因此要用到长整型符号L,告诉编译器这个常数是的长整型数。
4) 在表达式中用到UL(表示无符号长整型)。
#     ShorminHsu 发表于2007-07-24 11:50:10  IP: 59.40.32.*
2 . 写一个"标准"宏MIN ,这个宏输入两个参数并返回较小的一个。
#define MIN(A,B) ( (A) <= (B) ? (A) : (B) )

1) 对于嵌入式系统来说,为了能达到要求的性能,嵌入代码经常是必须的方法。
2) 三重条件操作符的知识。"?:"这个操作符存在C语言中的原因是它使得编译器能产生比if-then-else更优化的代码,了解这个用法是很重要的。
3) 懂得在宏中小心地把参数用括号括起来
4) 留意宏的副作用,例如:least = MIN(*p++, b);
#     ShorminHsu 发表于2007-07-24 17:37:58  IP: 59.40.32.*
3。预处理器标识#error的目的是什么?
#error语法如下: #error info
例如:#ifndef UNIX
#error This software requires the UNIX OS.
#endif
这条指令主要是给出错误信息,上面的这个例子就是,如果没有在UNIX环境下,就会输出This software requires the UNIX OS.然后诱发编译器终止。所以总的来说,这条指令的目的就是在程序崩溃之前能够给出一定的信息。
#     ShorminHsu 发表于2007-07-24 17:38:53  IP: 59.40.32.*
《C++中的预处理命令》
http://www.buaile.com/blog/blog.asp?ID=181
#     ShorminHsu  发表于2007-08-14 22:13:52  IP: 202.105.103.*
4. 死循环
while(1){}


for(;;){}


Loop:
...
goto Loop;
#     ShorminHsu  发表于2007-08-14 22:19:33  IP: 202.105.103.*
5。 一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数。

int (*a[10])(int);


-----------------------------------------------------------------------
用变量a给出下面的定义
a) 一个整型数(An integer)
b)一个指向整型数的指针( A pointer to an integer)
c)一个指向指针的的指针,它指向的指针是指向一个整型数( A pointer to a pointer to an intege)r
d)一个有10个整型数的数组( An array of 10 integers)
e) 一个有10个指针的数组,该指针是指向一个整型数的。(An array of 10 pointers to integers)
f) 一个指向有10个整型数数组的指针( A pointer to an array of 10 integers)
g) 一个指向函数的指针,该函数有一个整型参数并返回一个整型数(A pointer to a function that takes an integer as an argument and returns an integer)
h) 一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数( An array of ten pointers to functions that take an integer argument and return an integer )

答案是:
a) int a; // An integer
b) int *a; // A pointer to an integer
c) int **a; // A pointer to a pointer to an integer
d) int a[10]; // An array of 10 integers
e) int *a[10]; // An array of 10 pointers to integers
f) int (*a)[10]; // A pointer to an array of 10 integers
g) int (*a)(int); // A pointer to a function a that takes an integer argument and returns an integer
h) int (*a[10])(int); // An array of 10 pointers to functions that take an integer argument and return an integer
#     ShorminHsu  发表于2007-08-14 22:28:21  IP: 202.105.103.*
6。
嵌入式系统总是要用户对变量或寄存器进行位操作。给定一个整型变量a,写两段代码,第一个设置a的bit 3,第二个清除a 的bit 3。在以上两个操作中,要保持其它位不变。

#define BIT3 (0x1 << 3) //0x00001000
static int a;

void set_bit3(void)
{
a |= BIT3; //0xXXXX1XXX
}
void clear_bit3(void)
{
a &= ~BIT3; //0xXXXX0XXX
}
#     ShorminHsu  发表于2007-08-14 22:41:44  IP: 202.105.103.*
7。 要求设置一绝对地址为0x67a9的整型变量的值为0xaa66。

int *a;
a = (int *)0x67a9;
*a = 0xaa66;

为了访问一绝对地址把一个整型数强制转换(typecast)为一指针是合法的。
#     ShorminHsu  发表于2007-08-14 22:42:39  IP: 202.105.103.*
8。
《关于字符串逆序的问题》
http://blog.youkuaiyun.com/ShorminHsu/archive/2007/07/09/1683363.aspx
#     ShorminHsu  发表于2007-08-14 22:53:14  IP: 202.105.103.*
9。float a,b,c 问下列两个的值:
(a+b)+c == (b+a)+c
(a+b)+c == (a+c)+b

这题我不知道正确答案,我只说我自己的理解。
(a+b)+c == (b+a)+c 我认为是真,=1。
(a+b)+c == (a+c)+b 因为abc都是float,(a+b)+c与(a+c)+b应该会由于精度关系而不相等,所以我认为是假,=0。
#     ShorminHsu  发表于2007-08-14 22:58:17  IP: 202.105.103.*
10。关键字static的作用是什么?
关键字const有什么含意?
-
-
-
-

在C语言中,关键字static有三个明显的作用:
1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。
2) 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。
3) 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用。

-
-
-
const意味着"只读"。
#     ShorminHsu 发表于2007-08-23 17:13:18  IP: 219.134.236.*
11。
关键字volatile有什么含意?并给出三个不同的例子。
1)一个参数既可以是const还可以是volatile吗?解释为什么。
2) 一个指针可以是volatile 吗?解释为什么。
3)下面的函数有什么错误:
int square(volatile int *ptr)
{
return *ptr * *ptr;
}

-
-
-
一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。下面是volatile变量的几个例子:
1) 并行设备的硬件寄存器(如:状态寄存器)
2) 一个中断服务子程序中会访问到的非自动变量(Non-automatic variables)
3) 多线程应用中被几个任务共享的变量
-
-
-
1)一个参数既可以是const还可以是volatile吗?解释为什么。
是的。一个例子是只读的状态寄存器。它是volatile因为它可能被意想不到地改变。它是const因为程序不应该试图去修改它。
2); 一个指针可以是volatile 吗?解释为什么。
是的。尽管这并不很常见。一个例子是当一个中服务子程序修该一个指向一个buffer的指针时。
3); 下面的函数有什么错误:

int square(volatile int *ptr)
{
return *ptr * *ptr;
}

答) 这段代码有点变态。这段代码的目的是用来返指针*ptr指向值的平方,但是,由于*ptr指向一个volatile型参数,编译器将产生类似下面的代码:

int square(volatile int *ptr)
{
int a,b;
a = *ptr;
b = *ptr;
return a * b;
}

由于*ptr的值可能被意想不到地该变,因此a和b可能是不同的。结果,这段代码可能返不是你所期望的平方值!正确的代码如下:

long square(volatile int *ptr)
{
int a;
a = *ptr;
return a * a;
}
#     ShorminHsu 发表于2007-08-23 17:14:48  IP: 219.134.236.*
12。 整理失误,同第7题。
#     ShorminHsu 发表于2007-08-23 17:18:14  IP: 219.134.236.*
13。
动态内存分配
下面的代码片段的输出是什么,为什么?
char *ptr;
if ((ptr = (char *)malloc(0)) == NULL)
puts("Got a null pointer");
else
puts("Got a valid pointer");



把0值传给了函数malloc,能得到一个合法的指针,即“Got a valid pointer”
#     ShorminHsu 发表于2007-08-23 17:23:06  IP: 219.134.236.*
14。
Typedef 在C语言中频繁用以声明一个已经存在的数据类型的同义字。也可以用预处理器做类似的事。

例如,思考一下下面的例子:
#define dPS struct s *
typedef struct s * tPS;
以上两种情况的意图都是要定义dPS 和 tPS 作为一个指向结构s指针。哪种方法更好呢?(如果有的话)

为什么?

-
-
-
答案是:typedef更好。
思考下面的例子:

dPS p1,p2;
tPS p3,p4;

第一个扩展为
struct s * p1, p2;
.
上面的代码定义p1为一个指向结构的指针,p2为一个实际的结构,这也许不是你想要的。第二个例子正确地定义了p3 和p4 两个指针。
#     ShorminHsu 发表于2007-08-23 17:26:20  IP: 219.134.236.*
15。
中断是嵌入式系统中重要的组成部分,这导致了很多编译开发商提供一种扩展—让标准C支持中断。具

代表事实是,产生了一个新的关键字 __interrupt。下面的代码就使用了__interrupt关键字去定义了一个中断

服务子程序(ISR),请评论一下这段代码的。

__interrupt double compute_area (double radius)
{
double area = PI * radius * radius;
printf("/nArea = %f", area);
return area;
}

-
-
-
1)ISR 不能返回一个值。
2) ISR 不能传递参数。
3) 在许多的处理器/编译器中,浮点一般都是不可重入的。有些处理器/编译器需要让额处的寄存器入栈,有些处理器/编译器就是不允许在ISR中做浮点运算。此外,ISR应该是短而有效率的,在ISR中做浮点运算是不明智的。
4) printf()经常有重入和性能上的问题。
#     ShorminHsu 发表于2007-08-23 17:27:46  IP: 219.134.236.*
16。
下面的代码输出是什么,为什么?
void foo(void)
{
unsigned int a = 6;
int b = -20;
(a+b > 6) ? puts("> 6") : puts("<= 6");
}
-
-
-
>6
当表达式中存在有符号类型和无符号类型时所有的操作数都自动转换为无符号类型。
这一点对于应当频繁用到无符号数据类型的嵌入式系统来说是丰常重要的。
#     ShorminHsu 发表于2007-08-23 17:31:49  IP: 219.134.236.*
17。评价下面的代码片断:
unsigned int zero = 0;
unsigned int compzero = 0xFFFF;
/*1s complement of zero */

-
-
对于一个int型不是16位的处理器为说,上面的代码是不正确的。应编写如下:
unsigned int compzero = ~0;
这一问题真正能揭露出应试者是否懂得处理器字长的重要性。

#     ShorminHsu 发表于2007-08-23 17:34:48  IP: 219.134.236.*
18。
C语言同意一些令人震惊的结构,下面的结构是合法的吗,如果是它做些什么?
int a = 5, b = 7, c;
c = a+++b;

-
-

上面的例子是完全合乎语法的。
上面的代码被处理成:

c = a++ + b;

因此, 这段代码持行后a = 6, b = 7, c = 12。
#     ShorminHsu 发表于2007-08-23 18:01:44  IP: 219.134.236.*
19。
编写一个可重入的函数。
--------------------------
可重入的函数指的是在多线程状态下,函数可以在被一个一个线程调用没有返回前被另一个线程调用。
例如:如果函数里面需要设置某个全局变量,在刚刚设置完成没有使用前,有另一个高优先级的线程调用了这个函数,把全局量设置成了另一个值,然后执行结束退出。
刚刚被抢占的线程恢复运行,但是函数没法知道这个值已经被改变了,在后面继续使用这个全局变量,就会造成问题。
这样的函数就是不可重入的。
-
-
函数可重入指的是:如果你用相同的参数调用同一个函数,每次得到的结果是一样的。
这样的话,可重如的函数中,不能访问全局变量,不能有函数的静态变量。这些不是可重入的函数。
也就是说,可重入的函数是没有状态的函数。
#     ShorminHsu 发表于2007-08-23 18:16:05  IP: 219.134.236.*
可重入函数可以被一个以上的任务调用而不必担心数据被破坏,任何时候都可以被中断,中断程序运行完后又可以回到原来地址处运行并且它相应的数据不会丢失。
#     ShorminHsu 发表于2007-08-24 11:11:11  IP: 219.134.236.*
这概念主要在多任务环境中使用,如果只是在main()中一个while(1)任务循环,重入与否都不重要,因为没有别的任务去中断它。
而 一个可重入的函数简单来说,就是:可以被中断的函数。就是说,你可以在这个函数执行的任何时候中断他的运行,在任务调度下去执行另外一段代码而不会出现什 么错误。而不可重入的函数由于使用了一些系统资源,比如全局变量区,中断向量表等等,所以他如果被中断的话,可能出现问题,所以这类函数是不能运行在多任 务环境下的。

基本上下面的函数是不可重入的
(1)函数体内使用了静态的数据结构;
(2)函数体内调用了malloc()或者free()函数;
(3)函数体内调用了标准I/O函数。

把一个不可重入函数变成可重入的唯一方法是用可重入规则来重写他。
其实很简单,只要遵守了几条很容易理解的规则,那么写出来的函数就是可重入的。

第一,不要使用全局变量。因为别的代码很可能覆盖这些变量值。

第二,在和硬件发生交互的时候,切记执行类似disinterrupt()之类的操作,就是关闭硬件中断。完成交互记得打开中断,在有些系列上,这叫做“进入/退出核心”或者用OS_ENTER_KERNAL/OS_EXIT_KERNAL来描述。//这是临界区保护

第三,不能调用任何不可重入的函数。

第四,谨慎使用堆栈。最好先在使用前先OS_ENTER_KERNAL。

还有一些规则,都是很好理解的,总之,时刻记住一句话:保证中断是安全的!
#     ShorminHsu 发表于2007-08-24 15:56:54  IP: 219.134.236.*
可重入函数
http://blog.youkuaiyun.com/ShorminHsu/archive/2007/08/24/1757668.aspx
#     ShorminHsu 发表于2007-08-24 15:57:26  IP: 219.134.236.*

举例
void strcpy(char* lpszDest, char* lpszSrc)
{
while(*lpszDest++ = *lpszSrc++);
*dest=0;
}

Android开发史上最全笔试面试题 Focus on technology, enjoy life!—— 杨焕州 QQ:804212028 原文链接 本文可能存在参考或借助部分外界资源,如有任何侵权行为,请与我联系! 主题:Android面试题 -文档版本号:V1.0 目 录 1. 前言 7 2. 问答题 9 2.1. Android dvm的进程和Linux的进程, 应用程序的进程是否为同一个概念 9 2. 阅读详情

相关推荐

01-SDK全景概览与目录结构详解

本文系统梳理RK3506 Linux SDK目录结构与构建流程,以“汽车工厂”为比喻,清晰解析device/rockchip/(总控中心)、u-boot/、kernel-6.1/、buildroot/等核心目录职责。重点揭示build.sh如何调度编译,明确改分区表(parameter-*.txt)、调内核配置(defconfig)、加应用(app/)等操作的定位路径,辅以速查表强化实战能力,助力开发者快速掌握移植全流程。

内核笔记 965

【Interview###】华为、中兴嵌入式(C)笔试题

【程序员面试宝典】 1读程序段,回答问题(a) int main(int argc,char *argv[]) { int c=9,d=0; c=c++%5; d=c; printf("d=%d\n",d); return 0; } a)写出程序输出 b)在一个可移植的系统中这种表达式是否存在风险?why? 答案:5 存在风险,因为c=c++%5;这个表达式对c有两次修改,行为...

好习惯成就伟大 1万+

嵌入式开发工程师笔试面试指南-模电基础

嵌入式开发工程师笔试面试指南-模电基础

weixin_43491077的博客 426

嵌入式及手机开发

嵌入式及手机开发[笔试题目]千辛万苦搞来的,不过很多题目都见过了,比如《想成为嵌入式程序员应知道的0x10个基本问题》上面的。所以有些答案就可以直接去http://blog.youkuaiyun.com/ShorminHsu/archive/2007/03/24/1539458.aspx找。这里先放上题目,答案等后期整理出来吧。题目:1。用预处理指令#define 声明

jason_leeee的专栏 1107

ARM嵌入式系统开发核心技术要点笔试指南

ARM(Advanced RISC Machine)处理器是一种基于精简指令集(RISC)技术的处理器,被广泛应用于移动设备、嵌入式系统等领域。其特点在于精简的指令集、高效的指令执行速度以及低功耗设计,这使得它在功耗敏感的设备中非常受欢迎。嵌入式操作系统是运行在特定硬件平台上的操作系统,它通常与应用紧密结合,具有轻量级、实时性的特点。常见的嵌入式操作系统包括FreeRTOS、VxWorks、μC/OS-II等,它们为嵌入式系统提供了任务调度、同步、通信、内存管理等基本服务。

weixin_42576804的博客 430

深入嵌入式系统:笔试与面试题解密

嵌入式系统是由微处理器、微控制器或数字信号处理器等控制核心,加上外围硬件、软件组合而成的专用计算机系统。它被设计为执行一项或几项特定任务,在设计时需要充分考虑实时性、可靠性、成本和功耗等约束条件。

weixin_42509513的博客 827

C语言单片机笔试题,c语言面试题集(单片机

《c语言面试题集(单片机》由会员分享,可在线阅读,更多相关《c语言面试题集(单片机(9页珍藏版)》请在人人文库网上搜索。1、c语言面试题集(单片机)1.预处理器(Preprocessor)1. 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL 注意: 1). #define...

weixin_29345997的博客 1657

嵌入式开发笔试题 非常经典实用

预处理器(Preprocessor) 1. 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题) #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL 我在这想看到几件事情: 1). #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等) 2). 懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年中有多少秒而不是计算出实际的值,是更清晰而没有代价的。 3). 意识到这个表达式将使一个16位机的整型数溢出-因此要用到长整型符号L,告诉编译器这个常数是的长整型数。 4). 如果你在你的表达式中用到UL(表示无符号长整型),那么你有了一个好的起点。记住,第一印象很重要。 。。。。。。

我的手机-我的嵌入式-1

一、查看手机基本信息 1.查看CPU信息

u012784277的专栏 3661

手机结构面试题解答

1.手机壳体材料应用较广的是abs+pc,请问PC+玻纤的应用有那些优缺点?. 手机壳体材料应用较广的应该是PC+ABS,塑胶加玻纤的主要作用就是加强塑胶强度,。PC+玻纤也是同理,同时还可以改善PC料抗应力的能力、提高胶件平面度。 缺点:注塑流动性更差,塑件表面易浮纤,提高注塑难度及模具要求。因为PC本身注塑流动性就差。 2.哪些材料适合电镀?哪些材料不适合电镀?有何缺陷?

别再乱调了!Zygo MetroPro软件滤波功能保姆级指南,从均值到鲁棒高斯样条一次讲清

本文深入解析Zygo MetroPro软件的滤波功能,从均值滤波到鲁棒高斯样条等九种算法,帮助用户根据测量对象特性选择最佳滤波组合。通过真实工业案例和参数配置指南,提升光学测量数据的准确性和效率,特别适用于硅晶圆、光学镜片等精密测量场景。

weixin_30888413的博客 156

嵌入式Android开发 1:Android studio环境搭建

2023年最新版Android studio安装教程,附安装后测试结果。

天城电子嵌入式的博客 3159

从JT808/JT1078协议到多端协同:构建高并发北斗车辆监控平台的技术实践

本文详细介绍了基于JT808/JT1078协议构建高并发北斗车辆监控平台的技术实践,包括协议解析、高并发架构设计、多端协同实现及数据持久化策略。通过Netty、Kafka等技术优化,系统成功支撑日均2000万条消息处理,为GPS车辆动态监控系统提供了可靠解决方案。

weixin_28358083的博客 224

中兴手机嵌入式开发笔试题2010

中兴手机嵌入式开发笔试题 windyleaf07 发表于 2010-5-13 21:45:00 1:将一个整数10002存到磁盘上,以ASCII码形式存储和以二进制形式存储,占用的字节数分别是 c A.2和2 B.2和5 C.5和2 D.5和5 知识点:数据类型的存储方式 2:表达式 !x 等效于 b A.x1 **B.x0** C.x!=1 D.x!=0 知识点:逻辑非 3:执行下列程序 #...

复兴号之编程复兴 960

写出GD32L233/235在读写flash的区别(用于OTA功能)

在单片机里面表示 大概是 address += sizeof(uint32_t) address += sizeof(uint64_t)1.说到OTA功能,实际上 往flash 指定区域写 数据, 拷贝数据,然后 跳转, 必要时 注意单片机的偏移量。在写本文时,L233支持单字写入,而L235只有双字写入. 一个写入地址+4 一个写入地址+8。这个是 自己写的擦除一页 数据,当然可以参考 提供的demo去实现,看自己需求。接下来是 读取 双字,也就是在L235上的读取。

teleger的博客 907

增量式PID的P和I怎么理解(一)

增量式PID的P、I理解之推翻片 据我所知的资料里关于PID三个参数的理解是这样的:(我这里只说P和I,先不说D) P的作用:比例P可以加快系统调节速度,P过小调节时间变长,响应性不够,P越大响应性越高超调也越严重,过大的P会使系统振荡。 I的作用:消除静差,提高控制精度,I越大越滞后,过大会使系统振荡。 ...

fangchenglia的博客 1万+

vivo校招笔试B卷复盘:嵌入式与C++编程题考点详解

在校招求职中,笔试环节是通往技术面试的关键关卡,尤其对嵌入式、安卓底层等研发岗位而言,考察范围往往不局限于纯算法题,还涉及操作系统、内存管理、C/C++语言特性等底层基础。理解这些概念背后的原理,学会将数据结构与算法灵活运用于手机系统等真实业务场景,是提升笔试通过率的根本。这类技术能力在实际工程中同样具有重要价值,例如进程调度、资源分配、字符串解析等问题,都是移动端开发中的高频场景。以vivo校招笔试B卷为例,其题目设计兼顾算法思维与工程细节,编程题覆盖动态规划、贪心、数组排序等经典模型,同时穿插Linux

weixin_30342363的博客 322

手把手教你用Isograph Reliability Workbench 14.0绘制可靠性方框图(RBD)

本文详细介绍了如何使用Isograph Reliability Workbench 14.0绘制可靠性方框图(RBD),从软件安装、界面设置到基础项目创建和高级功能应用,手把手指导工程师完成系统可靠性分析。通过实际案例演示,帮助用户掌握RBD建模技巧,提升系统可靠性评估效率。

weixin_26765287的博客 619

春招笔试、面试经历-开发测试

笔试、面试经历三七互娱-游戏测试-笔试3.134399-游戏测试3.12vivo C/C++软件开发(嵌入式,一面(凉 三七互娱-游戏测试-笔试3.13 选择题: 1、游戏相关,吃鸡属于: RPG: FPS: 物理输出最高:法师/战士/坦克/萨满 简答题: 1、点击在线测试的开始按钮没有反应可能的原因: 2、手机app闪退的可能原因: 3、登录密码要求5-8位数字组成的无效等价类: 4、博弈论: ...

xx__Mor的博客 626

【知识分享】高速印刷电路板(PCB)寄生参数计算指南

对于高速PCB设计而言,寄生参数一直是令人讨厌的问题,它们会悄悄潜入PCB并在电路中造成严重的破坏,具体来说,它们是渗透到高速电路中的隐藏杂散电容器和电感器,包括由封装引线和长走线形成的电感器、PCB焊盘对金属平面形成的电容器、走线之间形成的电容器等等。

一只豌豆象的博客 1780

【SCADA】KingSCADA将数据插入SQLServer的方法

1、创建数据库及数据表格;2、配置ODBC数据源。3、通过KingSCADA与数据库建立连接,将数据写入数据库对应表格。

做有价值的事,积累有价值的笔记! 4958

嵌入式开发求职经验分享

嵌入式开发求职经验分享

2302_78663693的博客 2813

YOLOv11改进 | 主干/Backbone篇 | 利用RT-DETR主干网络PPHGNetV2助力yolov11有效涨点(轻量化目标检测网络)

本文给大家带来利用RT-DETR模型主干HGNet去替换YOLOv11的主干,RT-DETR是今年由百度推出的第一款实时的ViT模型,其在实时检测的领域上号称是打败了YOLO系列,其利用两个主干一个是HGNet一个是ResNet,其中HGNet就是我们今天来讲解的网络结构模型,这个网络结构目前还没有推出论文,所以其理论知识在网络上也是非常的少,我也是根据网络结构图进行了分析(精度mAP提高0.05)。YOLOv11改进系列专栏——本专栏持续复习各种顶会内容——科研必备​目录一、本文介绍。

Snu77的博客 3719

2025届 深圳 嵌入式岗 秋招上岸记录

这篇文章是笔者作为2025届本科生,对个人参与2024年9月份秋招经历的总结。

Witheart 的博客。 3895

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

DSP、嵌入式、软件笔试面试题

 1、请用方框图描述一个你熟悉的实用数字信号处理系统,并做简要的分析;如果没有, 也可以自己设计一个简单的数字信号处理系统,并描述其功能及用途.(仕兰微面试题 目) 2、数字滤波器的分类和结构特点.(仕兰微面试题目) 3、IIR,FIR滤波器的异同.(新太硬件面题) 4、拉氏变换与Z变换公式等类似东西,随便翻翻书把如.h(n)=-a*h(n-1)+b*δ(n)   a.求h (n)的z

beyonddream2008的专栏 2001

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

上一篇: 不定參數的 C 函式
下一篇: c 语言中插入汇编使用的格式
pointfish
博客等级 码龄17年 58粉丝 11原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值