使用RTOS_SDK,我该在哪里初始化我的串口UART0?

MrChar
Posts: 1
Joined: Sun Sep 17, 2017 10:34 am

使用RTOS_SDK,我该在哪里初始化我的串口UART0?

Postby MrChar » Sun Sep 17, 2017 11:15 am

我使用RTOS_SDK在ESP8266进行开发,我是用的是26M晶振的模块,所以需要重新配置波特率。在user_main中直接调用UART_ParamConfig()函数,编译器提示未定义。直接在user_main中调用UART_SetBaudrate(UART0,BIT_RATE_115200),反而没有提示函数未定义,但是提示宏UART0和BIT_RATE_115200没有定义,也就是说uart.h没有被包含。尝试重新编译获得libdriver.a,发现编译的结果在driver文件夹下,拷贝到lib文件夹下,没有在init_main中调用uart_init_new,我以为程序会自动调用初始化函数,没有结果。
我对gcc编译过程不是很了解,makefile也只能看个一知半解。所以我更想知道RTOS_SDK的结构是什么样的。
我的理解是源文件都已经编译成了.a库文件,通过include中的头文件进行调用。我理解的对吗?如果是这样那么libdriver.a对应的头文件是哪些?
文档中提过lib_drive文件夹是一个用来生成libdriver.a的案例,如果我把它下面的文件放在app文件夹下,编译的时候drive文件夹下的源文件是否参与编译?是否影响bin文件的内容?
程序是否有初始化的函数?例如是否会在初始化过程中初始化UART0?这个过程是在user_init之前还是在user_init之后?
如果我将driver和对应的inclue文件夹放在user文件夹下,并在user_main中包含头文件,那么user_main就可以调用driver中源文件的函数了,但这样是否造成了重复编译初始化函数造成存储空间的浪费?如果不这样,我应该怎么直接调用libdriver.a中的初始化函数?

Her Mary
Posts: 537
Joined: Mon Oct 27, 2014 11:09 am

Re: 使用RTOS_SDK,我该在哪里初始化我的串口UART0?

Postby Her Mary » Tue Sep 19, 2017 4:09 pm

这里有个工程示例https://github.com/espressif/ESP8266_RTOS_SDK/tree/master/examples/project_template
应该就是让你把需要的driver 放进去吧。
你可以打开 makefile 文件,看看是只编译了 user 文件夹,还是也编译了 driver 文件夹。

Who is online

Users browsing this forum: No registered users and 63 guests