發表文章

pip install pesq pypesq error: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/

圖片
error: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/ 當然,去google "visual C++ 14",大家都說這是 Build Tools for Visual Studio 2015,於是照著 這個網誌 去 微軟網站 抓 Microsoft Build Tools 2015 Update 3 (visualcppbuildtools_full.exe) ,但最後都抓不到套件,不斷出現: 最後發現從微軟的 這個網站 去下載Build Tool,安裝過程中記得選擇Visual C++ 2015,就可以在電腦中安裝Visual C++ 14,成功安裝pip packages。 僅此紀錄。

raspberry pi 3 runs the BCM2835 library

紀錄一下 raspberry pi 3 B+的板子想要使用bcm2835 library,遇到的問題: 1. BCM2835是給 raspberry pi 1 and 2使用的,3可以用,但是要更改。 跟pi 2 的板子一樣,cpu經過升級,GPIO的記憶體位置變了。 memory base要改成0X3F000000,詳見此網站:https://loserembedded.blogspot.com/2016/07/raspberry-pi-3-led.html 2.B+的板子是40pin,BCM2835 library要到1.5版才有支援,記得別抓到1.25版。 安裝過程可以參考這:https://www.airspayce.com/mikem/bcm2835/ 3.需要在c code中定義pin腳,記得要改成B+的pin腳哦。 https://www.airspayce.com/mikem/bcm2835/group__constants.html#ga63c029bd6500167152db4e57736d0939 4. Compile過程中,gcc找不到bcm2835的library,找好執行 gcc xxxx.c -lbcm2835 我也把libirry放在 /bin/bcm2835-1.50/當中,gcc就找得到了 5.執行時得用sudo,畢竟是動到記憶體的library麻。

安裝雙系統 win10 & ubuntu 16.04 遇到的問題

照著很多教學,安裝完win10後 ,先關閉「快速啟動」,再去BIOS關閉 sucure boot。 選擇光碟開機安裝ubuntu 後,卻常常沒看見 install alongside with windows 10,或是有卻無法成功安裝,解決方法是: 把硬碟做成GPT格式,再安裝windows,再安裝Ubuntu,就完成了。 接著,Ubuntu一直抓不到網卡,重灌Driver也沒救。 後來一查,是網卡 intel i219-v和OS間的問題,解法: 下載e1000e的驅動程式,解壓縮,修改裡面的 nvm.c檔案 https://ubuntuforums.org/showthread.php?t=2356217   才抓到網卡,太辛苦我了。

爬蟲筆記:安裝sublime text 3

參考 flycan.com 「教學:淺談 Sublime Text 的安裝設定及入門操作 – [ 上篇 ]」 以及 KILLER01 BLOGGER:   http://killer0001.blogspot.tw/2017/01/python-sublime-text-3.html 安裝玩sublime text 3,接著安裝 package control。 貼完 package control 的安裝code,卻一直無法正確安裝。看了一下error code,原來是不能建立新資料夾。 想了想,關掉sublime text,再以系統管理員身分打開,重新安裝 package control,就成功惹。 筆記筆記

99 台大電機丙 計算機結構與作業系統 第6題

Suppose we have a deeply pipelined processor, for which we implement a branch target buffer for the conditional branches, which are 15% of the instructions. Assume that the misprediction penalty is always 3 cycles and the buffer miss penalty is always 6 cycles. Assume 90% hit rate in the buffer and 75% accuracy of the buffer prediction. Assume a base CPI without branch stall is 1. Why is the CPI? A. 1 B. 1.09 C. 1.19 D. 1.675 E. None of the above Answer: C 兩種答案: 1: 1 + 0.15 ( 0.1*6 + 0.9*0.25*3 ) = 1.19125 (張帆) 2: 1 + 0.15 ( 0.25*3 + 0.75*0.1*6 ) = 1.18 https://i.imgur.com/GWItF8W.jpg

101成大電機 計算機組織

這有個data space 為32KB的cache, line size =block size=32Bytes = 2^5 Bytes 所以這個cache可以放 32KB/32B = 1K =2^10 blocks 截至目前為止 byte offset = 5 bits Index = 10 bits 選項(a)中表示有4GB的 memory space are cacheable,代表若用byte address表示的話,有2^32 bytes的空間需要被表示,所以需要32bit當作address。 (a) 32bits的address -10 bits index -5 bits offset= 17 (b),(c) index bit 只受cache影響,10bits (d) 1GB =2^30 bytes,需要30bits才能表達這麼大的空間,所以tag佔其中30-10-5=15bits,類似(a) 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1515472052.A.585.html

交大102計算機系統#14 Hoare Monitor

Monitor 中的Process Q被Blocked,進入Monitor的Waiting Queue等待,此時可以讓另一個Process P使用monitor。 若執行的Process P喚醒process Q,Monitor將存在兩個執行中的Process,違反Mutual Exclusive。 Hoare Monitor就是用來解決這個問題。 普通情況下,一個Process進入Monitor中使Procedure,為了確保只有一個Process使用,首先會wait(mutex),封鎖其他Process進入的可能。 執行完畢,離開Procedure,若有的話會優先招喚救命恩人,使救命恩人們優先使用procedure。 若沒有的話,讓出mutex,離開procedure。 假若目前在procedure中的Process Q不幸得進入waiting Queue,他將會執行x.wait:x_cnt++,Waiting Queue中多一個Process。因為被blocked,空出procedure,做其他離開的人都要做的事:招喚救命恩人或直接空出mutex。 接著,使用 semaphor wait(x-sem),將自己正式block起來,停在x.wait中,等待救命恩人的救援。 而此時Procedure被另一個Process P拿去用,Process P還沒做完,但是Process P想當救命恩人,想去看看Waiting Queue中有沒有process需要被救援,使用X.signal,先確認有沒有受難者(x-cnt>0)。 有的話,先去救命恩人表上填上自己的名字next-cnt++,用signal(x-sem)救出卡在wait(x-sem)的Process Q,自己先讓出procedure,將自己block起來(wait(next))。 被救出的Process Q終於能從 x.wait中脫困,執行x.wait最後的 x-cnt--,離開waiting Queue,也完全脫離x.wait,可以繼續執行procedure。 無論下一次Procedure中的Process Q執行完畢或再度進到waiting Queue,只要離開procedure,就會先檢查有沒有救命恩人們待救 或直接空出Mutex,讓其他人可以使用procedure。...