原创 typescript的調試

調試typescript爲什麼要用 typescript安裝typescript設置環境語言爲漢語調試設置工作區設置修改調試信息設置build環境上代碼輸出代碼調試界面爲何要搞javascript 之類的 爲什麼要用 typesc

原创 項目管理的進度控制

項目管理的進度控制 一個項目的核心因素由 時間、成本、範圍、質量決定,其中質量是核心 產出物 = 範圍x成本x時間/質量 如果一個項目定下了期限,也就是定下了計劃,這個是項目成敗的基礎也是合同的基礎,不能違背。 所以要使計劃能成功,能

原创 linux usb設備如何和u盤對應

已知 usb 的 pid vid,如何對加載的u盤進行管理 思路,找到 U盤的廠商信息中的pid和 vid 對應關係,然後控制 U盤的加載 但是 U盤信息中沒有pid 和 vid root@li-PC:/sys/kernel/debu

原创 嵌入式IAP升級程序的處理

爲什麼需要IAP 固件在用戶那裏通過串口或USB升級不方便 通過ISP讓用戶體驗不好 可以省去郵寄固件升級的麻煩 固件程序的場景 初次量產的時候 需要升級的時候 在這兩種場景需要 hex 文件是不同的,出廠的時候需要把 IAP

原创 VC 中 有符號擴展和無符號擴展問題

VC 中 有符號擴展和無符號擴展問題 先看一個例子 void test1() { short int x = 0xe101; short int y = 7; unsigned int z = x+(7<<16); pr

原创 節省棧空間的枚舉目錄

windows 枚舉目錄的時候如何節省空間不會導致棧溢出。下面就是儘量節省空間的代碼. #include <windows.h> #define println(format,...) printf(format "\n",__VA_

原创 cmake x86 x64 trace信息

問題:當我們編寫CMakeLists.txt 的時候,需要知道操作系統是什麼類型,是編譯的x86還是x64,是Debug還是Release,還有系統中到底還定義了哪些變量,我們可以使用的? 目的:這篇文章的目的就是告訴大家當需要查找系統

原创 使用YASM編程 - 06

我們寫彙編程序的時候,往往無法基於彙編代碼的思考,只能使用類C語言的方式來進行編程。於是就要從C語言->最細僞代碼->用寄存器替代爲機器理解代碼。 現在以起泡法舉例。 bubble() { int a[]={5,10,4,29,

原创 linux arm 使用cmake 進行編譯的一個播放音樂的例子

搭建 arm linux 環境一般是這樣: 1 下載交叉編譯環境 2 下載cmake,如果版本低,那麼下載源碼自己編譯 3 下載gdb新版本,我下的是7.5 4 編譯 gdb ,然後配合 gdbserver可以遠程調試,或者使用

原创 NAT連接的虛擬機提供web服務,如何讓HOST同一局域網機器訪問

NAT提供的虛擬機一般只能和本機通訊,如果其他的和HOST 主機同一網段的主機需要訪問虛擬機,怎麼辦呢? NAT和主機的網絡原理: 比如主機在10.10.1.* 這個網段 虛擬機在 192.168.1.* 這個網段 host主機V

原创 CreateRemoteThread 使用的兩個例子

CreateRemoteThread - 創建一個運行在其他進程的虛擬內存空間。 需要一個地址,這個地址在其他進程的虛擬地址空間;參數是個指針,也需要在那個進程的虛擬地址空間。 這裏包含兩個例子: 1 用遠程線程在uedit32.exe

原创 使用YASM編程 - 01

YASM 繼承了NASM ,擴展了支持的語法和平臺 支持INTEL 格式語法和 GNU AS 語法 下面是一個例子,實現了簡單的invoke 調用和編程的一個基本的框架 它能夠: 0 win32 程序,控制檯打印 1 調用外部程

原创 使用YASM編程 - 04

在linux下使用yasm 先介紹 64位的彙編開發 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;test.asm ;在Linux下使用yasm ;安裝: yasm sudo apt install

原创 使用YASM編程 -07 模擬導入表

模擬導入表 導入表的調用方式 call xxx ; xxx 是導入函數的名稱 xxx: jmp DWORD [fn] ; 是遠程間接跳轉 fn : DD 0x

原创 sse 指令xmm寄存器和內存互相複製的問題

下面是一段可以執行的x64 的 nasm 彙編代碼,類似可執行文件的外殼代碼 bits 64 global start extern MessageBoxA section .text start: push rbp