首页 > 其他分享 >C51单片机开发环境

C51单片机开发环境

时间:2023-01-11 10:37:31浏览次数:59  
标签:platformio C51 pio stcgal enabled upload 单片机 开发 STC89C52RC

C51单片机开发环境

0 OS环境

os

1 IDE

下载Clion

2 嵌入式插件

安装pio插件

3 嵌入式

  • 安装PlatformIO Core

  • 我使用的是HomeBrew进行管理

    brew update
    
    brew install platformio
    
  • 验证

    pio --version
    

4 IDE编译

4.1配置ToolChains

除了默认,我额外配置了2个,都是用的gcc编译器,但是调试器不一样

4.1.1 Default

4.1.2 GCC

4.1.3 ARM-Linux

4.2 配置CMake

根据需要选择配置的ToolChain,我优先使用的是ARM-Linux

4.2.1 Default

4.2.2 Debug-ARM-Linux

5 烧录

5.1 安装对应的USB驱动

5.2 stcgal

  • 这个是python项目的一个package,需要前置安装好py3

    pip3 install stcgal
    
  • 验证

    stcgal --version
    

6 项目流程

6.1 新建项目

选择自己适配的板子型号,没有需要的板子就按照单片机型号进行选择

6.2 添加单片机头文件

pio集成的环境使用的是sdcc编译,提供了开发的头文件,需要加到CMakeLists中让IDE识别到

include_directories("$ENV{HOME}/.platformio/packages/toolchain-sdcc/share/sdcc/include")

6.3 修改platformio.ini

我使用的默认的upload烧录不成功,应该是我电脑上有多个py版本导致pip管理的stcgal有错乱,手动指定烧录命令

upload_port = /dev/cu.wchusbserial14340
upload_protocol = stcgal
upload_flags =
    -P
    stc89
    -p$UPLOAD_PORT
upload_command = stcgal $UPLOAD_FLAGS ./.pio/build/STC89C52RC/firmware.hex

6.4 IDE头文件路径飘红问题

在8051.h和8052.h头文件中#include "lint.h"

6.5 语法问题

大部分教材文档都是基于windows+keil的,mac+sdcc的语法跟其有些不同

sdcc keil
头文件 8052.h/8051.h reg52.h/reg51.h
端口控制口定义 #define LED1 P2_0 sbit LED1 = P2 ^ 0;
中断声明 void time1() __interrupt 3 __using 2 void time1() interrupt 3 using 2

6.6 烧录

6.6.0 打开开关,给板子供电

6.6.1 在Upload的前置加上Build,这样每次改完代码直接点击Upload就行

6.6.2 烧录是根据终端提示进行断电/供电操作

出现Waiting for MCU, please cycle power: done提示时手动进行一次断电/上电动作

完整执行日志如下

/usr/local/Cellar/platformio/6.1.5_1/bin/platformio -c clion run --target upload -e STC89C52RC
Processing STC89C52RC (platform: intel_mcs51; board: STC89C52RC)
--------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/intel_mcs51/STC89C52RC.html
PLATFORM: Intel MCS-51 (8051) (2.1.0) > Generic STC89C52RC
HARDWARE: STC89C52RC 11MHz, 512B RAM, 8KB Flash
PACKAGES: 
 - tool-stcgal @ 1.106.0 (1.6) 
 - tool-vnproch55x @ 1.0.220407 
 - toolchain-sdcc @ 1.40200.0 (4.2.0)
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 0 compatible libraries
Scanning dependencies...
No dependencies
Building in release mode
Checking size .pio/build/STC89C52RC/firmware.hex
Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
Flash: [=         ]   7.6% (used 626 bytes from 8192 bytes)
Configuring upload protocol...
AVAILABLE: stcgal
CURRENT: upload_protocol = stcgal
Looking for upload port...
Using manually specified: /dev/cu.wchusbserial14340
Uploading .pio/build/STC89C52RC/firmware.hex
Waiting for MCU, please cycle power: done
Target model:
  Name: STC89C52RC/LE52R
  Magic: F002
  Code flash: 8.0 KB
  EEPROM flash: 6.0 KB
Target frequency: 11.030 MHz
Target BSL version: 6.6C
Target options:
  cpu_6t_enabled=False
  bsl_pindetect_enabled=False
  eeprom_erase_enabled=False
  clock_gain=high
  ale_enabled=True
  xram_enabled=True
  watchdog_por_enabled=False
Loading flash: 626 bytes (Intel HEX)
Switching to 19200 baud: checking setting testing done
Erasing 4 blocks: done

Writing flash:   0%|          | 0/1024 [00:00<?, ? Bytes/s]
Writing flash:  25%|██▌       | 256/1024 [00:00<00:00, 2110.54 Bytes/s]
Writing flash:  50%|█████     | 512/1024 [00:00<00:00, 1328.97 Bytes/s]
Writing flash:  75%|███████▌  | 768/1024 [00:00<00:00, 1274.83 Bytes/s]
Writing flash: 100%|██████████| 1024/1024 [00:00<00:00, 1315.79 Bytes/s]
Writing flash: 1152 Bytes [00:00, 1515.85 Bytes/s]                      
Setting options: done
Disconnected!
========================= [SUCCESS] Took 7.21 seconds =========================

Process finished with exit code 0

7 代码

Git地址

标签:platformio,C51,pio,stcgal,enabled,upload,单片机,开发,STC89C52RC
From: https://www.cnblogs.com/miss-u/p/17043011.html

相关文章

  • MVC:开发模式
    1.jsp演变历史    1.早期只有servlet,只能使用response输出标签数据,非常麻烦。      2.后来有了jsp,简化了Servlet的开发,如果过度使用jsp中即写大量的Java代码,造......
  • Serverlet程序开发
    1.去marven仓库官网下载所需控件https://mvnrepository.com/ <!--https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api--><dependency>......
  • Servlet生命周期,以及对Servlet开发的改进
    Servlet项目结构--web(项目名称) --WEB-INF --classes(编译后的java类) --lib(存放运行时所需的jar包) --web.xml(填写servlet相关信息) --html --css --image第一个......
  • 记录使用adb连接rn项目进行开发
    先在本地安装adbADB全称AndroidDebugBridge,译作Android调试桥。ADB是一种功能多样的命令行工具,可让您与设备进行通信。ADB命令可用于执行各种设备操作(例如安装和调......
  • OPPO 后端开发 一、二面面经
    你好,我是Guide,看了这么多面试成功的经验分享,今天来看一个读者分享的Oppo秋招面试失败经历。面经合集请看:Java面试题&面经精选集。下面是正文(文中的我为读者本人)。个......
  • 【首页】推荐店铺模块开发和滑块处理
    一、【首页】推荐店铺模块开发和滑块处理1.1完成后的效果图:1.2components/index目录下新建Shop.vue组件1.3pages/index/index.vue引入Shop.vue组件1.4Shop.vue组......
  • 自签发SSL证书-解决本地开发跨域调试问题
    问题:解决问题:第一步:新建文件ext.ini,或者ext.ext都可以,写入以下内容basicConstraints=CA:FALSEkeyUsage=nonRepudiation,digitalSignature,keyEnciphermen......
  • Windows安装使用Docker,方便你的开发和部署(DockerDesktop篇)
    前言首先声明,此篇不是完全的Docker技术文章,而是单纯的教你使用Docker,不包含Docker的一些命令、如何打包Docker镜像等等。为什么要用Docker?大家好,我是小简,今天带来一篇W......
  • ESP32-C3 CORE 开发板,接口摸底
    合宙的ESP32-C3CORE开发板有经典版(含CH343转串口芯片)和简约版(USB直接拉通芯片),设备管理器中显示的串口号不同:        下载2个版本的线路图,D4-GPIO......
  • 【首页】热销爆品开发修改商品值
    一、【首页】热销爆品开发修改商品值1.1完成后的效果图:1.2component/index下创建Hot.vue组件1.3pages/index/index.vue引入Hot.vue组件1.4Hot组件内容为单个商品......