背景
本人筆記本太渣,使用keil編譯時CPU占用率竟然能到%90,實在忍受不了,就想著將stm32 keil的工程port到linux上用makefile來控制(嗯,服務器配置相當豪華)。使用gdb+jlink server的方式進行調試。驚喜的發現jlink竟然可以直接將程序燒寫到stm32的內部flash。
移植
記錄幾個關鍵地方:
參考工程: https://github.com/embedded2014/freertos-stm32 ,因為需要用到makefile和lds腳本,自己寫起來太費勁,就在github上搜了一下,果然有前輩做好的工程。就借鑒一下Makefile和lds,在該基礎上進行修改
將MDK的工程源碼直接添加后,發現編譯沒有通過,百度上發現MDK和GCC用的啟動文件start.s不同。參考鏈接:http://bbs.chinaunix.net/thread-4083983-1-1.html
調試
在windows上打開gdbserver,選擇目標處理器后界面如下
在linux系統上使用對應gdb連接該server
> cat gdb.sh
#!/bin/bash
~/workspace/stm32/gcc-arm-none-eabi-7-2018-q2-update/bin/arm-none-eabi-gdb -x ./script_gdb/stm32.gdb
> cat ./script_gdb/stm32.gdb
target remote 10.213.37.111:2331
file ./STM32F429.elf
exec-file ./STM32F429.elf
然后手動在gdb中使用load命令即可將程序燒寫到stm32的flash中(注意lds是flash版本的而不是sram版本)
關于gdb和Keil的對比
顯然keil比較方便,但是gdb可定制性更強,熟悉用起來就比較舒服。
順便說一下編譯器性能,之前測試過coremark大概就是:IAR > MDK > GCC,即同樣的程序IAR編譯的會比GCC編譯的性能好。
上一篇:stm32 usb和安卓手機的通訊過程
下一篇:STM32-Flash做為存儲器儲存數據
推薦閱讀
史海拾趣
背景:隨著全球光伏產業的快速發展,對光伏膠膜的需求急劇增加。
發展:福斯特抓住市場機遇,不斷擴大產能,完善產品品類,提高產品質量。同時,公司還積極開拓國際市場,與全球多家知名光伏組件企業建立了長期合作關系。
成果:到2021年,福斯特的光伏膠膜全球市占率超過50%,成為全球光伏膠膜行業的龍頭企業。
作為一家具有社會責任感的企業,EMMICRO公司始終關注環保和社會公益事業。公司積極參與環保活動和公益捐贈,推動企業的可持續發展和社會進步。同時,公司還積極承擔對員工的培訓和發展責任,為員工提供良好的職業發展平臺和福利待遇。這種對社會責任的擔當也贏得了社會的廣泛贊譽和尊重。
在產品研發取得突破的同時,EM Devices Corporation也積極拓展市場,尋求與國際企業的合作。公司參加了多個國際電子展,展示了自己的產品和技術實力。通過與國外企業的交流與合作,公司不僅獲得了更多的市場機會,還學習到了先進的生產和管理經驗。這些經驗為公司后續的發展奠定了堅實的基礎。
DIOFIT公司一直秉持著品質至上的生產理念,注重產品質量和用戶體驗。他們嚴格控制原材料采購和生產流程,確保每一款產品都符合高標準的質量要求。同時,DIOFIT公司還建立了完善的售后服務體系,及時解決用戶在使用過程中遇到的問題,贏得了用戶的信賴和好評。
FlyWin集團旗下的另一家公司,專注于電子元器件的回收與再利用。隨著電子產品的快速迭代,廢舊電子設備的處理成為一大難題。該公司通過建立完善的回收網絡和先進的處理技術,有效回收了包括粵翔貼片排阻在內的多種電子元器件。這些回收的元件經過專業檢測和處理后,部分被重新用于生產,部分則被安全環保地處置,有效減少了電子垃圾對環境的污染。這一舉措不僅為公司帶來了經濟效益,也為社會的可持續發展貢獻了一份力量。
手機與筆記本電腦(NB)進行跨界大戰,原本可能先在移動上網裝置(MID)率先開打,但因上網本(Netbook)聲勢遠高于MID,這場大戰可能直接在上網本交鋒。目前以高通(Qualcomm)、德州儀器(TI)及飛思卡爾(Fr ...… 查看全部問答∨ |
|
大開眼界---看看國外電子工程師們設計的AVR單片機開發板、學習板-連載中 前幾天在論壇發了一個帖子:大開眼界---史上最牛AVR單片機開發板 http://bbs.eeworld.com.cn/thread-88307-1-1.html 帖子發了以后,總有些意猶未盡的感覺,于是萌發了一個念頭:到網上去搜索一下國外電子工程師們設計的單片機開發板 ...… 查看全部問答∨ |
|
void Fn_Init_DS18B20() { uchar i; uint j; PORTD=PORTD|BIT(6); //拉高總線電平 PORTD=PORTD&(~BIT(6));//置總線為低 ...… 查看全部問答∨ |
跪求各位: 誰有Unicode編碼表UTF-16對應的GB2312編碼表,越詳細越好,本人在做UTF-16向GB2312轉換是,應為UTF-16是Shift_JIS (日語)類型,因為在UTF-16中,對應的GB2312不是連續的,故無法判斷當前的是日語還是漢語 ...… 查看全部問答∨ |
MSP430系列的原理和應用,是華東師范大學計算機開心與技術學院經典教程,分享給大家!!! [ 本帖最后由 鑫海寶貝 于 2011-10-12 09:38 編輯 ]… 查看全部問答∨ |
|
#include <reg52.h> sbit ENLED = P1^4; sbit ADDR3 = P1^3; sbit ADDR2 = P1^2; sbit ADDR1 = P1^1; sbit ADDR0 = P1^0; unsigned char code Ledcode[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff}; unsigned char va ...… 查看全部問答∨ |