随笔分类 -  #Linux

Shell_参数替换(転)
摘要:From: http://www.cnblogs.com/yjf512/archive/2013/06/03/3114803.htmlBash中的$符号的作用是参数替换,将参数名替换为参数所代表的值。对于$来说,大括号是可选的,即$A和${A}代表同一个参数。1、${}带冒号的有下面几种表达式:${parameter:-word}如果parameter为null或者未设置,整个参数替换表达式值为word${parameter:=word}如果parameter为null或者未设置,整个参数替换表达式值为word,并且parameter参数值设置为word${parameter:?word}如果 阅读全文

posted @ 2013-09-16 11:50 至柔 阅读(649) 评论(0) 推荐(0)

shell_基础知识
摘要:参考: http://blog.csdn.net/kaizi318/article/details/9343551开头程序必须以下面的行开始(必须方在文件的第一行):#!/bin/sh符号#!用来告诉系统它后面的参数是用来执行该文件的程序。在这个例子中我们使用/bin/sh来执行程序。默认变量 $# : 传入脚本的命令行参数个数 $* : 所有命令行参数值,在各个参数值之间留有空格 $0 : 命令本身(shell文件名) $1 : 第一个命令行参数 $2 : 第二个命令行参数 $@ 表示参数列表"$1" "$2" ...,例如可以用在for循环中的in后 阅读全文

posted @ 2013-09-15 14:46 至柔 阅读(177) 评论(0) 推荐(0)

Linuxドライバ_LDD3メモ_カーネルにおけるデータの型
摘要:カーネルにおけるデータの型 標準のCのデータ型は、アーキテクチャによってサイズが違います。 jiffyを用いて時間を計算する場合には、必ずHz(1秒ごとのタイマ割り込み数)を用いて時間をスケーリングしましょう。 メモリを操作する場合には、1メモリページがPAGE_SIZEバイトであり、4KBではありません。 バイトオーダー: ・インクルードファイル<asm/byteorder.h>は、 CPUのバイトオーダーに従って、「__BIG_ENDIAN」と「__LITTLE_ENDIAN」のどちらかを定義します。 ・#ifdef __LITTLE_ENDIAN条件文の固まりをコーディングし... 阅读全文

posted @ 2013-01-06 17:11 至柔 阅读(545) 评论(0) 推荐(0)

Linuxドライバ_LDD3メモ_割り込み処理
摘要:割り込み処理 (※マルチコア対応関連)割り込みハンドラは別のコードと同時に実行されます。つまり、並行処理と、データ構造体とハードウェアの競争の問題が必ず起こることになります。多くの場合、モジュールは別のドライバと割り込み信号線を共有することになります。1)、割り込みハンドラのインストール ①、関連関数 割り込みハンドラのインストールは、ドライバの初期化時、あるいはデバイスが始めてオープンされたときに行います。 ・割り込み登録のIFとして、 (<linux/interrupt.h>) int request_irq( // 割り込み番号 //... 阅读全文

posted @ 2013-01-06 17:06 至柔 阅读(3011) 评论(0) 推荐(0)

Linuxドライバ_LDD3メモ_ハードウェアとの通信
摘要:ハードウェアとの通信 1)、I/OポートとI/Oメモリ 各周辺デバイスは、そのレジスタを読み書きすることで制御されます。 そのアドレスは、メモリアドレス空間か、I/Oアドレス空間の中に置かれています。 ①、I/Oレジスタとコンベンショナルメモリ I/OレジスタとRAMの主な違いは、I/O操作には付帯的な影響があることです。 I/O操作にとってはコンパイラの最適化(キャッシング、読み書きの並べ替え)が致命的なものになります。 ・ハードウェアキャッシングの対策 (対応不要) 既にLinuxの初期化コードが、ハードウェアのI/O領域(メモリまたはポート領域)にアクセ... 阅读全文

posted @ 2013-01-06 15:10 至柔 阅读(2491) 评论(0) 推荐(0)

Linuxドライバ_LDD3メモ_時間関連処理
摘要:時間関連処理 1)、時間経過の計測 一般には「jiffies」の使用をお勧めします。 ①、「jiffies」カウンタを使う キャッシュしたjiffiesと現在の値の比較は、 int time_after(unsigned long a, unsigned long b); int time_before(unsigned long a, unsigned long b); int time_after_eq(unsigned long a, unsigned long b); int time_before_eq(unsigned long a, unsi... 阅读全文

posted @ 2013-01-06 15:05 至柔 阅读(2125) 评论(0) 推荐(0)

Linuxドライバ_LDD3メモ_並行処理と競争状態
摘要:並行処理と競争状態 (※マルチコア対応関連)1)発生原因 SMPシステムでは、異なるプロセッサ上でコードを同時に実行することができます。 カーネルコードはプリエンプティブであり、ドライバコードはいつでもプロセッサを手放します。 ・複数のプロセスが同一ドライバを呼ばれた場合 ・割り込みハンドラ ・非同期のカーネルイベントへの応答 など (性質上、ハードウェアリソースは共有されるものであり、しばしばソフトウェアリソースも複数のスレッドから利用する必要があります。) 2)対策 アクセス... 阅读全文

posted @ 2013-01-06 14:40 至柔 阅读(835) 评论(0) 推荐(0)

Linuxドライバ_LDD3メモ_モジュールの作成と実行
摘要:モジュールの作成と実行 ・Hellow Worldモジュール、及び関連マクロ&関数。(P16) #include <linux/init.h> #include <linux/module.h> MODULE_LICENSE("Dual BSD/GPL"); static int hello_init(void) // モジュールがカーネルロードされたときに起動される関数。 { printk(KERN_ALERT "Hello, worl... 阅读全文

posted @ 2013-01-06 14:36 至柔 阅读(115) 评论(0) 推荐(0)

遇到的linux问题汇集 (转载)
摘要:From:http://g.51cto.com/linux/29485A.umask 1.作用 umask设置用户文件和目录的文件创建缺省屏蔽值,若将此命令放入profile文件,就可控制该用户后续所建文件的存取许可。它告诉系统在创建文件时不给谁存取许可。使用权限是所有用户。 2.格式 umask 阅读全文

posted @ 2012-11-04 15:13 至柔 阅读(178) 评论(0) 推荐(0)

Linux目录解释 (转)
摘要:From: http://hi.baidu.com/urnuoflsjpbgqwd/item/8ee5fa0f8f2d4a016c9048a0/binbin是binary(二进制)的缩写。这个目录是对UNIX系统习惯的沿袭,存放着使用者最经常使用的命令。例如:cp,ls,cat。 /boot这里存放 阅读全文

posted @ 2012-10-14 19:17 至柔 阅读(142) 评论(0) 推荐(0)

linux驱动程序开发环境配置【转载】
摘要:********************************************************* 特别提醒:1、编译驱动需要先编译内核;2、驱动的makefile要指定正确的:KERNELDIR := /lib/modules/所编译内核的版本/build 3、编译好的内核要安装进OS; 4、加载驱动时所运行的OS内核,要和编译驱动的内核版本相同;5、驱动的 printk 输出,可能在 /var/log/syslog 里面。(今天终于实现我人生的第一个hello world 驱动了 ) ********************************************* 阅读全文

posted @ 2012-05-20 00:20 至柔 阅读(1635) 评论(0) 推荐(0)

导航