‘壹’ keil软件通过编译生成的烧录文件是什么格式
编译生成的文件:plg;编译器编译结果.hex和.bin;可执行文件:.map和.lst。
程序员将产品的逻辑操作抽象为C代码,然后通过编译器的编译和链接,生成微处理器可执行的机器码。
在典型的应用程序中,编译器或汇编器将程序的源代码(例如C或汇编语言)转换为机器代码,并将其输出到一个文件中。然后,这个文件由程序员导入,以将机器代码“烧录”到ROM中,或传输到目标系统以进行加载和执行,这个存放机器码的文件就是烧录文件。
‘贰’ stc单片机烧录步骤
STC单片机烧录代码步骤:(以下文字由wannenggong经键盘录入)
1、需要有一根下载线。可以是连接电脑主板原生串行9针COM端口经MAX232芯片转换的串口连接线;也可以是连接电脑USB端口经CP21xx或CH3xx芯片转换的串口接线,如果使用的是USB转串口的下载线,使用前需要在电脑中安装相应转换芯片的驱动程序,目前使用最多的是CH340下载线,驱动安装成功后可以在电脑“设备管理器”端口列表中看到:USB-SERIAL CH340(COMx)项、此时需要牢记这个x也就是串口号码,例如:COM4。
2、连接下载线与STC单片机的串口1(P3.0,P3.1端口),此时需要注意的是下载线的TXD/RXD与单片机的TXD/RXD引线需要交叉连接。
3、到STC单片机官网下载最新版的STC-spi软件,打开软件后(1)、选择待下载芯片的型号。(2)、选择串口。(3)、设置波特率,最低波特率设为2400最高可以根据不同芯片从低到高试着设置。(4)、打开编译通过的.hex目标文件。
4、先不给单片机通电,点击“下载/编程”,等待3秒左右为单片机上电,接下来可以看到软件窗口的自动操作的各项提示和下载进度条,等待一段时间即可完成下载。
‘叁’ 如何编译一个可以烧写进手机中的ROM,android安卓开发者
首先.还是跟其它文章讲的一样.先下载ANDORID的源码.在下源码之前.请看下面第一步
----------
增加代码,下真机配置
1
vim .repo/local_manifest.xml
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project path="kernel" name="kernel/msm" revision="refs/heads/android-msm-2.6.29"/>
<project path="hardware/htc/dream" name="platform/hardware/htc/dream" revision="master"/>
</manifest>
增加上面这段代码,为一个配置.告诉服务器.我们下的代码.是要装进真机的.
(就为了多下载一个KERNEL下来。。还有下载DREAM的真机配置参数..)
小哈在这里折腾了很久.很久..非常久..回忆起来内牛满面
-----
下相关的代码
2.
repo sync
-----
3.
vim env_rc
加入:
export EMU=/home/coconut/cupcake/out/host/linux-x86/bin
export ARCH=arm
export CROSS_COMPILE=arm-eabi-
export PATH=$PATH:/home/coconut/cupcake/prebuilt/linux-x86/toolchain/arm-eabi-4.2.1/bin:${EMU}
source env_rc
4.
编译内核及无线网络驱动
$ cd $ANDROID/kernel
$ make ARCH=arm CROSS_COMPILE=../prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi- msm_defconfig # 设定默认的msm配置
#编译内核
make ARCH=arm CROSS_COMPILE=../prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi-
#编译无线网络驱动
cd $ANDROID/system/wlan/ti/sta_dk_4_0_4_32
make ARCH=arm CROSS_COMPILE=$ANDROID/prebuilt/linux-86/toolchain/arm-eabi-4.4.0/bin/arm-eabi- KERNEL_DIR=$ANDROID/kernel
//内核拷到目录下
$ cp $ANDROID/kernel/arch/arm/boot/zImage $ANDROID/vendor/htc/dream-open/kernel
$ cp $ANDROID/system/wlan/ti/sta_dk_4_0_4_32/wlan.ko $ANDROID/vendor/htc/dream-open/wlan.ko
5.
在HTC网站(developer.htc.com/adp.html)
下载名为signed-dream_devphone_userdebug-ota-14721.zip的包,并把它放在$ANDROID目录下
$ cd $ANDROID
$ source build/envsetup.sh
$ lunch aosp_dream_us-eng # 指明机型
这样编译出来.就会在OUT下出来一个DREAM_OPEN的目录.里面就有相关的镜像文件了.
$ cd vendor/htc/dream-open
$ ./unzip-files.sh # 解压htc相关驱动
$ cd $ANDROID
$ vi buildspec.mk # 新建配置文件
----
Vim htc_dream.mk
vim /oracle/android/src/vendor/htc/dream-open/htc_dream.mk
在头部增加
PRODUCT_PACKAGES := \
Calculator \
Email \
ImProvider \
SdkSetup \
VoiceDialer
完成。
回到根目录
cd /oracle/android/src
vim buildspec.mk
加入( 2010.7.7 不需要加入):
#TARGET_PRODUCT:=htc_dream
#TARGET_PREBUILT_KERNEL:=kernel/arch/arm/boot/zImage
增加:
CUSTOM_LOCALES:=zh_CN
然后:
其中增加环境:
ubuntu 8.10 , sudo apt-get libelf-dev
make clean
// 保证PC有 1280 内存, 加上 1000 SWAP空间..虚拟机也是如此.
然后开始编译 BOOT.IMG SYSTEM.IMG USERDATA.IMG:
make -j2
接下来
mmm -B $ANDROID/packages/apps/Luancher/ snod
cd out/target/proct/dream-open/
//先测试:
emulator -system . -kernel ~/cupcake/prebuilt/android-arm/kernel/kernel-qemu -data userdata.img
因为出来了BOOT.IMG.这个是真机的..所以不能用BOOT做为内核.要用模拟器来做内核.
//然后开始烧机
fastboot flash boot boot.img
fastboot flash system system.img
fastboot flash userdata userdata.img
fastboot reboot
‘肆’ 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 目标文件
‘伍’ 如何使用CCS5.2烧写一个已经编译好的*.ihex程序
可以转换了:网友说了一个方法:IAR有一个工具:安装目录下bin\ielftool.exe 可以使用用上楼的烧写方法,和转换后烧写HEX的方法,运行结果一样的。该指令方法是: ielftool --ihex *.out *.hex--ihex 是个参数,表示转换为HEX文件*.out 要转换的OUT格式的源文件*.hex 输出的HEX的文件名转换后,可以用串口方式烧写了!
‘陆’ 单片机设计,c程序编译成hex,烧录
用Keil 51啊.如果原有工程所有文件,直接打开工程,在输出设置选上Hex输出.再编译就可以了.如果只有代码.那就创建工程,把代码添加到工程中,同时看看代码中用#include""中包含了哪些,看看这些文件是不是在Keil\C51\INC下有,没有就得找到他里面的内容,自己创建个文件到工程中,这样就可以编译了