esp8266 SOC方案经过半年沉淀之后再度重启二

2018-08-2014:16:10

以下是输出控制

      PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO0_U, FUNC_GPIO0);
      GPIO_OUTPUT_SET(GPIO_ID_PIN(0), level);

      PIN_FUNC_SELECT(PERIPHS_IO_MUX_U0TXD_U, FUNC_GPIO1);  //TXD
      GPIO_OUTPUT_SET(GPIO_ID_PIN(1), level);

      PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO2_U, FUNC_GPIO2);
      GPIO_OUTPUT_SET(GPIO_ID_PIN(2), level);

      PIN_FUNC_SELECT(PERIPHS_IO_MUX_U0RXD_U, FUNC_GPIO3);  //RXD
      GPIO_OUTPUT_SET(GPIO_ID_PIN(3), level);

      PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO4_U, FUNC_GPIO4);
      GPIO_OUTPUT_SET(GPIO_ID_PIN(4), level);

      PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO5_U, FUNC_GPIO5);
      GPIO_OUTPUT_SET(GPIO_ID_PIN(5), level);

      PIN_FUNC_SELECT(PERIPHS_IO_MUX_SD_DATA2_U, FUNC_GPIO9);
      GPIO_OUTPUT_SET(GPIO_ID_PIN(9), level);

      PIN_FUNC_SELECT(PERIPHS_IO_MUX_SD_DATA3_U, FUNC_GPIO10);
      GPIO_OUTPUT_SET(GPIO_ID_PIN(10), level);

      PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDI_U, FUNC_GPIO12);
      GPIO_OUTPUT_SET(GPIO_ID_PIN(12), level);

      PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTCK_U, FUNC_GPIO13);
      GPIO_OUTPUT_SET(GPIO_ID_PIN(13), level);

      PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTMS_U, FUNC_GPIO14);
      GPIO_OUTPUT_SET(GPIO_ID_PIN(14), level);

      PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDO_U, FUNC_GPIO15);
      GPIO_OUTPUT_SET(GPIO_ID_PIN(15), level);

      gpio16_output_conf();
      gpio16_output_set(level);

以下是输入采集

      PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO0_U, FUNC_GPIO0);
      result = GPIO_INPUT_GET(GPIO_ID_PIN(0));

      PIN_FUNC_SELECT(PERIPHS_IO_MUX_U0TXD_U, FUNC_GPIO1);  //TXD
      result = GPIO_INPUT_GET(GPIO_ID_PIN(1));

      PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO2_U, FUNC_GPIO2);
      result = GPIO_INPUT_GET(GPIO_ID_PIN(2));

      PIN_FUNC_SELECT(PERIPHS_IO_MUX_U0RXD_U, FUNC_GPIO3);  //RXD
      result = GPIO_INPUT_GET(GPIO_ID_PIN(3));

      PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO4_U, FUNC_GPIO4);
      result = GPIO_INPUT_GET(GPIO_ID_PIN(4));

      PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO5_U, FUNC_GPIO5);
      result = GPIO_INPUT_GET(GPIO_ID_PIN(5));

      PIN_FUNC_SELECT(PERIPHS_IO_MUX_SD_DATA2_U, FUNC_GPIO9);
      result = GPIO_INPUT_GET(GPIO_ID_PIN(9));

      PIN_FUNC_SELECT(PERIPHS_IO_MUX_SD_DATA3_U, FUNC_GPIO10);
      result = GPIO_INPUT_GET(GPIO_ID_PIN(10));


      PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDI_U, FUNC_GPIO12);
      result = GPIO_INPUT_GET(GPIO_ID_PIN(12));

      PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTCK_U, FUNC_GPIO13);
      result = GPIO_INPUT_GET(GPIO_ID_PIN(13));

      PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTMS_U, FUNC_GPIO14);
      result = GPIO_INPUT_GET(GPIO_ID_PIN(14));

      PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDO_U, FUNC_GPIO15);
      result = GPIO_INPUT_GET(GPIO_ID_PIN(15));

      gpio16_input_conf();
      result = gpio16_input_get();


2018-07-1719:36:23

继上一次发博之后,今天5分钟搞定SOC开发。


 重点在于导入方式

第二种导入方式,针对第三方云平台项目用第一种方法无法导入问题。例如“机智云”生成的项目文件夹。
步骤1:解压从机智云下载的项目并复制到project文件夹内。双击"OpenWorkSpace"批处理文件,自动打开。简化步骤


<ignore_js_op> 
步骤2:将项目手动复制进去。下图选中的就是我刚才复制的项目文件夹。
<ignore_js_op> 
步骤3:双击打开该文件夹,直到定位到有“MakeFile”的文件夹处。并复制文件路径,到安信可IDE内用。注意路径上有文件名,不能出现中文。

<ignore_js_op> 
步骤4:双击打开AiThinker_IDE。“File”->"Import"。图略了。

步骤5:双击下图的“Existing Code as Makefile Project
<ignore_js_op> 
步骤6:将刚才复制的路径直接粘贴到“Existing Code Location”处,省地点“Browse”按钮一层层找了。下面选"Cygwin GCC"。 点“Finish”。
<ignore_js_op> 

导入成功,但还有些地方需要修改,否则编译不成功。我是从机智云论坛上看来的,目前我还没整明白。就是双击打开MakeFile,将下面这段程序参数修改下。

BOOT?=none
APP?=0
SPI_SPEED?=40
SPI_MODE?=QIO
SPI_SIZE_MAP?=0
改成
BOOT?=new
APP?=1
SPI_SPEED?=40
SPI_MODE?=QIO
SPI_SIZE_MAP?=6

boot赋值为new,意思就是可以升级

APP 赋值为1,就可以生成user1的bin 文件  如果需要OTA云端升级,就要用到user2文件,只要在这里将APP值赋为2就行了。

SPI_SPEED是下载的速度

SPI_MODE是下载模式

SPI_SIZE_MAP是flash的大小这个可以看上面那个文档详细介绍 赋值为0表示使用的flash是512k

有一处没搞清楚,安信可官方的SPI_SIZE_MAP?=2  机智云论坛上的那位大神是SPI_SIZE_MAP?=4,而下面有位版主说要改成SPI_SIZE_MAP?=6  反正都能编译成功。

原文地址:https://www.cnblogs.com/pengwenzheng/p/9325495.html