1. 連續 2 日,上漲 均線多頭排列 大紅棒 (漲幅超過 3 %) 2. 均線多頭排列 近 3 日, 外資 買超張數 前 30 名 最近 3 日漲幅 排名前 30 名 3. 均線多頭排列 成交量 連續3日 增加 今天 盤中 突破 5 日新高
2017年9月23日 星期六
選股條件
2017年9月21日 星期四
如何Kill child process by fork() 創建
pid = fork()之後,如pid為0,是child的執行程式段, child程式段,註冊了一個alarm signal,callback function為killchild(), 這邊調用alarm(3),即三秒後會發出alarm signal到這個程序, 再調用kill()砍掉目前的process,即child process。
#include <stdio.h> #include <signal.h> void killchild(int signum) { printf("kill id = %d\n", getpid()); kill(getpid(), SIGKILL); } int main() { pid_t pid; pid = fork(); if(pid == 0) { printf("child id = %d\n", getpid()); signal(SIGALRM, killchild); alarm(3); while(1); } else if(pid < 0){ printf(" we have an error\n"); } else { printf("parent id = %d\n", getpid()); while(1); } }
程序運行後,先打印parent process ID和child process ID, 三秒之後,再kill child process。
pi@raspberrypi:~/Work $ gcc test.c -o test && ./test parent id = 1750 child id = 1751 kill id = 1751
程序運行後,調用ps來看這個程序創建的兩個process, 1750為parent process,1751為child process, 在三秒後,即alarm signal發出後,可以看到child process狀態變為defunct 狀態defunct,即為zombie process,表示child process已被砍掉, 但由於parent process還在運行,所以child process資源還無法完全釋放, 此child process就變成zombie process。
pi@raspberrypi:~ $ ps -aux | grep test pi 1750 52.5 0.0 1680 356 pts/0 R+ 00:08 0:01 ./test pi 1751 53.0 0.0 1680 84 pts/0 R+ 00:08 0:01 ./test pi 1753 0.0 0.2 4276 1908 pts/1 S+ 00:08 0:00 grep --color=auto test pi@raspberrypi:~ $ pi@raspberrypi:~ $ pi@raspberrypi:~ $ pi@raspberrypi:~ $ pi@raspberrypi:~ $ ps -aux | grep test pi 1750 92.6 0.0 1680 356 pts/0 R+ 00:08 0:04 ./test pi 1751 59.8 0.0 0 0 pts/0 Z+ 00:08 0:02 [test]參考來源pi 1755 0.0 0.2 4276 2004 pts/1 S+ 00:09 0:00 grep --color=auto test
https://stackoverflow.com/questions/35898631/child-process-kill-itself-after-3-seconds-in-fork
2017年9月19日 星期二
WM8960 放音 & 錄音
1. 音頻系統名詞 Master clock:每一個音頻子系統都需要一個主時鐘,通常被稱作MCLK或者SYSCLK,主時鐘可以來自外部振盪器或者CPU系統時鐘,某些時鐘源是 可以配置的,通常為了省電會降低系統的工作頻率。 DAI(digital audio interface) Clocks:通常由BCLK驅動(bit clock),主要用來驅動CPU和codec之間的數位電路。 同時 DAI 在每個audio封包的開始也有一個時鐘,這個時鐘也常被成為 LRCLK(左右聲道時鐘),這個時鐘的頻率和採樣率頻率相同。 BCLK的產生: BCLK = LRC * Channels * Word Size = SampleRate * NumChannels * BitsPerSample = 44.1k * 2 * 16 bit = 1.41M 2. WM8960 mode Master mode & Slave mode 3. WM8960放音 ADCDAT: ADC data output ADCLRC: ADC data alignment clock DACDAT: DAC data input DACLRC: DAC data alignment clock BCLK: Bit clock, for synchronisation 在Master Mode下,放音時,SoC使用I2S介面,發送BCLK, DACLRC, DACDAT至WM8960。
4. WM8960錄音 ADCDAT: ADC data output ADCLRC: ADC data alignment clock DACDAT: DAC data input DACLRC: DAC data alignment clock BCLK: Bit clock, for synchronisation 在Master Mode下,放音時,SoC使用I2S介面,發送BCLK, DACLRC至WM8960,接收ADCDAT從WM8960。5. 參考來源
https://read01.com/zh-tw/z83nJ2.html#.WcEizbKg9dg
https://d3uzseaevmutz1.cloudfront.net/pubs/proDatasheet/WM8960_v4.2.pdf
https://d3uzseaevmutz1.cloudfront.net/pubs/manual/WM8960_6158_FL32_M_REV1_Example_Configurations.pdf
訂閱:
文章 (Atom)