導航:首頁 > 源碼編譯 > sdcc編譯出來文件大

sdcc編譯出來文件大

發布時間:2024-01-20 19:01:53

⑴ stc8h8k64u在keil選什麼

stc8h8k64u在keil選MCU
為避免之前STC12封裝庫存在的問題, 這個封裝庫在以下方面進行了改進
兼容SDCC和Keil C51
FwLib_STC12封裝庫只支持SDCC編譯, 並且寄存器命名與官方不同, 使得基於FwLib_STC12的項目代碼與其他Keil開發的項目代碼無法兼容.
在FwLib_STC8的開發上, 採用了與官方庫文件一致的命名, 並且增加了對Keil C51和SDCC的適配. 基於FwLib_STC8的項目, 可以在linux下使用SDCC編譯, 也可以在Windows下使用Keil C51環境進行編譯.
減小代碼尺寸
FwLib_STC12封裝庫較多使用函數的方式對寄存器進行封裝, 而函數與函數間的層級調用都會增加棧開支, 這樣一方面8位MCU本來就不多的內存更加捉襟見肘, 另一方面增加了生成的固件尺寸.
在FwLib_STC8封裝庫中, 大量使用宏語句對寄存器操作進行封裝, 並且控制方法間的層級調用深度, 有效節省了固件體積和堆棧佔用。

⑵ 什麼情況,而且不能生成HEX文件!謝謝!

代碼尺寸超出設備內存的大小限制,
你可能需要修改縮減源碼

前面的朋友提到 Keil 的注冊問題,個人推薦 SDCC (Small device C compiler) ,這是一個開源的嵌入式 C 編譯器,支持 51,PIC,MCxxx 等設備的編譯。我用了很多年了,SDCC 編譯的目標碼可能不如 Keil C 的緊湊,但效率不是問題,如果真正追求效率的話何不用匯編?Keil C 是商業軟體,既然不想付費,那麼選擇免費的開源產品也是不錯的。

單片機編程語言一般有哪幾種

  1. 單片機的編程語言有三種種:機器語言、匯編語言與高級語言。

  2. 機器語言是計算機能夠看懂的語言。(形式為一段二進制代碼)

5.由於計算機只能看懂機器語言所以無論是匯編語言還是高級語言都需要經過編譯成為機器語言才能夠執行。

拓展資料

單片機的高級語言

51單片機支持三種高級語言,即PL/M,C和BASIC。C語言是一種通用的程序設計語言,其代碼率高,數據類型及運算符豐富,並具有良好的程序結構,適用於各種應用的程序設計,是目前使用較廣的單片機編程語言。

單片機的C語言採用C51編譯器(簡稱C51)。有C51產生的目標代碼短,運行速度高,所需存儲空間小,符合C語言的ANSI標准,生成的代碼遵循Intel目標文件格式,而且可與A51匯編語言或PL/M51語言目標代碼混合使用

⑷ SDCC編譯器警告問題,怎麼解決

編譯器的警告要認真對待,應該盡量編寫沒有警告的代碼,除非你確切的知道編譯器為什麼產生警告,以及後果

⑸ 有什麼好用的C/C++編譯器么推薦下

clang不錯


GCC是最好的,沒有之一。


編譯器幾乎沒有國產的,國內更少有開源的。

gcc最經典

icc在x86上表現優秀

clang/llvm後起之秀

msvc占據Win

嵌入式/小眾的平台:vc6,sdcc,iarcc,keilcc都不錯。

歡迎補充


G++編譯不錯,編輯vsc不錯


題主問的應該是C/C++編程軟體吧(自帶有編譯器),下面我以Windows系統為例,簡單分享3個非常不錯的開發軟體,分別是Dev-C++、CodeBlocks和VisualStudio,感興趣的朋友可以嘗試一下:

01

Dev-C++

這是Windows平台下一個非常基礎、簡單易學的C/C++編程軟體,個人使用完全免費,基本功纖行畝能和使用方式與早期的VC6.0非常相似,沒有任何自動補全、語法提示和錯誤檢查的功能,因此非常適合初學者,對於入門編碼學習來說,非常鍛煉基本功,但在開發效率上有些捉襟見肘:

02

CodeBlocks

這是一個免費、開源、跨平台的C/C++編程軟體,完美支持3大操作平台,相比較功能單一的Dev-C++,CodeBlocks支持自動補全、代碼高亮、語法提示、錯誤檢查等常見功能,除此之外,還自帶有許多工程模板,可以快速創建Qt、Win32GUI等應用,因此開發效率更高,也更適合項目集成:

03

VisualStudio

這是Windows系統下一個非常著名的集成開發環境,號稱宇宙第一IDE,功能強大,不僅僅是C/C++,常見的C#、VB、python等編程語言,這個軟體都能很好兼容,智能補全、語法提示、代碼高亮等功能非常不錯,除此之外,還支持單元測試、代碼重構、代碼分析等高級功能,因此開發效率更高,也更適合大型項目,初期接觸可能不容易掌握,但熟悉後的確是一個C/C++開發利器,值得學習和使用:

目前就分享這3個Windows環境下不錯的C/C++編程軟體吧,初學入門的話,建議使用Dev-C++等容易掌握、學習的軟體,專注於基本功,多看多練習,熟悉後,可以使用VS、CLion等專業軟體,提帶叢高開發效率,也方便團隊協作和毀森項目管理,當然,除了以上軟體,還有許多其他C/C++開發工具,像Linux下的Vim,Mac下的Xcode等也都非常不錯,網上也有相關教程和資料,介紹的非常詳細,感興趣的話,可以搜一下,希望以上分享的內容能對你有所幫助吧,也歡迎大家評論、留言進行補充。


一般可以使用輕量級的codeblocks

或者直接mac或者linux系統的gcc(不使用ide)


如果想使用在線的話

很棒而且可以選擇標准

⑹ 如何進入安卓手機linux內核

一、需要准備的東西

1
手機必須要Root,沒有的度娘解決。
2
首先安裝 終端模擬器 軟體,稍後有用,度娘一下搞定了。

3
然後是Busybox,這是一款高度集成的Linux小工具集合,也很容易找到,安裝好就行。

4
安裝android VNC ,用於連接遠程桌面。

5

手機內核必須支持loop和ext2文件系統,實踐證明ext3,ext4也是可以的。
(1)檢驗是否支持loop設備
打開 終端模擬器,鍵入命令 ls /dev/block看是否有loopN設備,N是數字。
(2)ext支持不好確定,多數安卓都支持,畢竟是Linux系統出身嘛,後續交代。

6

由於sourceforge伺服器在地球的另一面的美國,所以訪問速度自然是不用吐槽的啦,不過還好鏡像伺服器還是不少的,可以網路搜索sorceforge鏡像
選擇你喜歡用的系統下載下來吧。
這里要下載兩個文件
(1)、鏡像文件
有三個版本,完整版(Large)、精簡版(smalll)、核心版(core)
可以在伺服器相應文件夾下找到zip文件,大小約500MB,解壓出來2GB左右。
* 註:完整版和精簡版有桌面程序,核心版只有命令行界面
(2)、腳本文件
在相應Linux發行版文件夾裡面找到,帶script的zip文件就是了,也下載下來。

END
二、後續操作

下載鏡像和腳本文件之後在/sdcard上創建一個文件夾,名字與相應的linux發行版名字相同,將下載到的zip文件解壓到此處,鏡像和腳本都要解壓到這個文件夾。
比如筆者的Ubuntu 10.04就是在/sdcard上創建一個名為ubuntu的文件夾,然後把ubuntu.img和ubuntu.sh解壓到/sdcard/ubuntu/即可。

然後就是最重要的一步修改腳本了,許多人不成功就是這里沒有修改了。
先看一下腳本文件吧!所有的腳本都是差不多的歐!
如圖

找到圖上第三行的位置,
mount -o remount,rw /dev/block/mmcblk0p5 /system
我們看到這是掛載/system為 可寫 狀態,但是這里卻是掛載的固定是'/dev/block/mmcblk0p5',這腫么可以??要知道安卓的硬體是遍地開花、各式各樣都有,/system的所在的設備也各不相同,比如我的是在/dev/block/mmcblk0p19,以前用的是mmcblk0p12,根本不可能統一的

所以我們需要找到/system究竟對應的是那個分區。
方法:給個比較可靠的方法吧,下載一個和你的手機相對應的刷機包,打開\META-INF\com\google\android\updater-script文件,搜索"/dev/block"關鍵字,找到一條與system相關的一行,看到了這樣一行
format("ext4", "EMMC", "/dev/block/platform/msm_sdcc.1/by-name/system", "0", "/system");
那個帶/dev/block的那個就是你的system分區,用它來替換原來腳本的那一個 /dev/block/mmcblk0p5吧!
我的修改結果是
mount -o remount,rw /dev/block/platform/msm_sdcc.1/by-name/system /system
這里因人而異,不要照搬哦!

然後打開終端模擬器,測試一下
1.輸入 su 並回車,獲取root許可權
2.輸入 cd /sdcard/ubuntu 進入腳本文件所在目錄,這里ubuntu替換你創建的文件夾名字
3.輸入 sh ubuntu.sh ,運行ubuntu系統
到這里理論上是應該成功了
出現圖一這樣的情況時就要輸入解析度了,我的是1280x720,比較常用的還有800x600等
輸入1280x720 ,回車

等待出現 root@localhost:/# 你的Linux已經啟動成功啦
終端模擬器以經連接到ubuntu的終端了
但是沒有桌面讓我們怎樣愉快的玩耍呀?
所以打開AndroidVNC,配置一下 參數
Nickname:隨便寫
Password :你的Linux名稱,我的是ubuntu
Address : 因為是本機運行,所以寫 localhost 或者 127.0.0.1
Port : 默認5900
Username:root
Color Format : 24-color (4bpp)

然後點擊左上角Connect即可
然後就看見了我們期待已久的Ubuntu界面里

但是還有個問題,不支持中文是一個蛋疼的問題啊
所以在安卓系統上找個中文ttf(直接復制/system/fonts/DroidSansFallback.ttf也是可以的)放到/sdcard
進Linux系統後復制字體到
/usr/share/fonts/truetype/ttf-dejavu
重啟就能再見到親切的中文了!

在Linux界面下
1.音量鍵相當於鍵盤的上下箭頭↑↓
2.雙指可以縮放界面,雙指滑動可以滾屏
3.按下菜單鍵-send 可以 觸發特殊鍵 比如 ctrl + alt + delete 關機重啟
4.菜單鍵- Input Mode 可以選擇 滑鼠操作方式 , 推薦選擇touchPad 把觸屏當觸摸板用

⑺ linux下怎麼編譯單片機c代碼,怎麼下載到51單片機上呢

1.編譯軟體用sdcc
2.sdcc不支持keil51c 的一些語法。要做以下修改:
sbitled1=P1^0; 改為 #define led1 P1_0
中斷函數interrupt改為__interrupt
單個位 P1^0 改為P1_0
若vim安裝插件YCM的話,要在.ycm_extra_conf.py加入以下兩個路徑
/usr/share/sdcc/include
/usr/share/sdcc/include/mcs51
沒創建一個工程都要拷貝一份.ycm_extra_conf.py到該工程的目錄下。

3.編譯用命令
` sdcc 目標文件
4.燒錄軟體用stcflash.py,該軟體只能支持stc89c52rc,不支持stc89c52。我自己親自試過。
sudo python ./stcflash.py 目標文件

閱讀全文

與sdcc編譯出來文件大相關的資料

熱點內容
小米桌面文件夾亂碼怎麼回事 瀏覽:854
點歌台app怎麼連接 瀏覽:316
大學電腦編程學什麼好 瀏覽:346
上哪裡取消應用加密 瀏覽:170
電氣控制與可編程式控制制器pdf 瀏覽:85
cad圖紙不能跨文件夾粘貼 瀏覽:254
學生雲伺服器主機 瀏覽:885
單片機狀態周期 瀏覽:620
lua中的android 瀏覽:441
加密貴還是植發貴 瀏覽:662
陽光壓縮機繼電器 瀏覽:969
修改阿里雲伺服器密碼 瀏覽:815
lk4102加密晶元 瀏覽:588
怎麼更改app店面 瀏覽:489
設備部門如何做好伺服器 瀏覽:849
androido下載 瀏覽:478
神奇高量戰法副圖源碼 瀏覽:830
匯編語言設計凱撒密碼加密器 瀏覽:392
主次梁加密是加在哪裡 瀏覽:664
模板匹配演算法matlab 瀏覽:825