【面接】小米会社の組み込み職面接経験

1609 ワード

面接はハードウェア、ソフトウェア、基礎知識、履歴書の内容から幅広く行われています.
全体の面接は3時間近く続いて、3人の面接官が交代で聞いて、それぞれハードウェア、ソフトウェア、総合に偏っていますが、総じて履歴書と基礎知識をめぐって聞いています.
第一位面接官はハードウェアに偏っていて、それぞれ聞きました.
  • データ伝送時に上下2倍の速度でデジタル信号を採集した場合、エッジがちょうどデジタルホッピングを採集した場合はどうしますか(レイアウト配線、確立保持時間、FPGAのピン制約に関する面から答えます).
  • 型電の中の運転は、対数を求める回路を描いて、何年も復習したことがないことを示して、完全に忘れて、面接官はやはり基礎を重視していることを表明しました.
  • 小米のスマートホーム関連部門を面接したため、このチームの製品で使われているオペレーティングシステムはlinuxではなくucosのようなもので、いくつかのプロセス間の同期と通信の手段、つまりスピンロック、信号量などのものの原理を聞いて、自分にスピンロックを実現させた.
  • 私のFPGAを見て関連する経験があって、Verilogでカウンタを書くように言いました;
  • 一方向チェーンテーブルのソート;
  • クイックソート;
  • C言語のいくつかの基礎知識(volatile、const、static、ポインタなど);

  • 2番目の面接官は少し柔らかくて、ソフトウェアに関する質問をしています.
  • memcpy(char*dest,char*sor,size_t size)を実現する.
  • はマクロOFFSETを書き、構造体のメンバーを知る、そのメンバーの構造体におけるメモリオフセット量を求める、#define OFFSET(type,member) ((size_t)&(((type*)0)->member))
  • .
  • 構造体におけるメモリ分布等;
  • には、2つのレジスタを制御するハードウェアカウンタが知られています.1つはクロックの初期値を設定するために使用され、1つはクロックのゲート値を設定するために使用され、その時、クロックの初期値が設定されてからカウントを開始し、カウント値がゲート値に達すると、1つの関数の実行をトリガーし、2つの関数を作成させます.それぞれ1を実現する:任意の時刻にどれだけの時間を設定できるか後にある関数の実行をトリガする;2:任意の時点で前に設定した実行タスクを取り消すことができる.(解決構想はチェーンテーブルで最小優先キューを実現し、タスクがキューに対応する挿入を設定し、時間になって優先キューに対応するノードの削除を実行し、削除し、トリガ時に対応する関数にジャンプすればよい).

  • 最後の面接官は時間が足りないので、発散的な質問しかしませんでした.
  • 大きなファイルがあると仮定し、その中のデータ構造は以下の通りである:XXX.XXX.XXX.XXX(IPアドレス)天気;例えば192.168.1.1晴転多雲はどのように最も速い方法で1つの地区の天気状況を見つけます(IPアドレスは往々にして地区と対応関係があります).私が答えた構想は、ファイルを格納するときに各情報を位置合わせ(すなわち、同じサイズのアドレスを占有する)し、次いで二分法を用いて各IPセグメントの位置を検索し、ファイルポインタを移動すればよい(O(lgn);

  • もちろん、履歴書の項目についても少し聞きましたが、総じて、いろいろ聞きましたが、難しくはありません.