開發記錄

Week #2

  • 預先準備動作
  • 在自己的電腦中,安裝 Lubuntu 14.10 作業系統
  • 在筆電上灌了Ubuntu 14.04.02,中間小錯誤不斷,包括蓋上蓋子就會休眠,休眠後喚醒就重啟ORZ...在看到老師發帖說環境盡量為Lubuntu 14.10後,下載了.ISO鏡像進行安裝,出現了以下錯誤操作并導致了問題:
  • 直接在Windows系統下用分區軟體刪除了之前的灌有Ubuntu的分區
  • 用UltraIso軟體將LUbuntu 14.10燒錄進U盤里
  • 以上第一點的錯誤操作會導致開機後進入Grub rescue程序,連原有的Windows操作系統都找不到了,原因是:
  • Grub2在mbr運行時會尋找之前OS存放在某個分區的/boot/grub/目錄,現在被我刪除掉了,當然找不到了。
  • 又因為我的硬碟里已經沒有*nix系統了,所以後來按照網上建議的解決方案“ls (hd0,X)/boot/grub”方法也無效,全部都顯示無法識別的分區。
  • 第二點錯誤操作屬於意外(如果直接U盤灌Lubuntu 14.10成功,也不會遇到第一點出現的問題)。這個操作遇到的問題是在BIOS選擇external device啟動後,在進入U盤時提示:
  • “failed to load ldlinux.c32”
  • 查詢的原因是:
  • 由於Ubuntu使用了最新的syslinux版本,然而大多數U盤刻錄軟體還不支持最新的syslinux,因此導致U盤無法啟動。
  • 解決的方法是:
  • 使用了Deepin公司的U盤燒錄軟體,很好用,安裝成功。
  • Git之前有使用過,這個簡體教程講的很生動:
  • ARM Architercture
  • ARMv7-A and ARMv7-R edition:
  • ARMv7-M edition:
  • 筆記:
  • register(37) :
  • R13-SP, R14-LR, R15-PC
  • Why Thumb instruction are used vs ARM?
  • 關於ARM組合語言的一個快速入門
  • The design of the machine language encoding is called the instruction set architecture (ISA).
  • ISA varieties: X86, PowerPC, ARM
  • DIV: LSL, LSR, ASR, ROR
  • whatever follows ‘|’ means with the specified flag enabled
  • Q: in P34, what does "bx lr"does A: Return from function call
  • Q: in P35, CPSR doesn't change in both mla and mls, why only mentioned "no flags updated" after mls?
  • 評測執行效率
  • 思路:在執行fibonacci數列前獲取一次系統當前時間,在運行完fibonacci數列後再次獲取系統當前時間,兩者相減得到的時間近似運行fibonacci數列的時間。由此來對比遞歸和非遞歸程式的執行效率。
  • 規則:
  • 首先在某個版本運行了30次左右,觀察sequence at 5,6,7的時間結果,其80%的結果都在一個例如(0.0030,0.0032)的區間內,偶爾會出現一兩次超出這個範圍的結果。
  • 那麼在後面採集數據進行對比的時候,若當時間點超過之前觀察得到的時間範圍(例如(0.0030,0.0032)),則不予採集。這樣運行十次程式得到十個結果,取時間的算術平均數的方式進行對比。
  • 結果:
  • 非遞迴:
  • sequence at 5:0.00309216976s
  • sequence at 6:0.00310204029s
  • sequence at 7:0.00309662819s