support avr architecture based on ATMega32

1. IAR project, see TencentOS-tiny\board\ATMega32\IAR, both 4.12 and 7.20 is supplied.
This commit is contained in:
daishengdong
2020-03-03 18:27:24 +08:00
parent e3da94194e
commit 7e6ce005e6
56 changed files with 13225 additions and 244 deletions

Binary file not shown.

View File

@@ -0,0 +1,7 @@
#ifndef __TIM_H_
#define __TIM_H_
// void Timer2_Init(uint32_t clock, uint32_t tick_per_second);
#endif

View File

@@ -0,0 +1,13 @@
#ifndef __USART_H_
#define __USART_H_
void uart_send_byte(char data);
void uart_send_string(char *string);
unsigned char uart_receive(void);
void uart_init(unsigned int baudrate);
#endif

View File

@@ -0,0 +1,20 @@
#if 0
#include "tos_hal.h"
int tos_hal_uart_init(hal_uart_t *uart, hal_uart_port_t port)
{
}
int tos_hal_uart_write(hal_uart_t *uart, const uint8_t *buf, size_t size, uint32_t timeout)
{
int i = 0;
for (i = 0; i < size; ++i) {
uart_send_byte(buf[i]);
}
}
#endif

View File

@@ -0,0 +1,12 @@
#include "iom32.h"
#include "tim.h"
void timer1(void)
{
TCCR1B = 0X00;
TCNT1 = 0;
OCR1B = 800;
TIMSK |= (1 << OCIE1B) | (1 << TOIE1);
TCCR1A = (1 << COM1B1) | (1 << WGM10) | (1 << WGM11);
TCCR1B = (0 << WGM13) | (1 << WGM12) | (0 << CS12) | (0 << CS11) | (1 << CS10);
}

View File

@@ -0,0 +1,47 @@
#include "iom32.h"
#include "uart.h"
#define F_CPU 16777216
void uart_send_byte(char data)
{
while (!(UCSRA & (1 << UDRE))) {
;
}
UDR = data;
}
void uart_send_string(char *string)
{
for(; *string!='\0'; string++) {
uart_send_byte(*string);
}
}
unsigned char uart_receive(void)
{
while (!(UCSRA & (1 << RXC))) {
;
}
return UDR;
}
int putchar(int data)
{
uart_send_byte(data);
}
void uart_init(unsigned int baudrate)
{
unsigned int tmp;
tmp = F_CPU / baudrate / 16 - 1;
/* Set baud rate */
UBRRH = (unsigned char)(tmp >> 8);
UBRRL = (unsigned char)tmp;
/* Enable receiver and transmitter, enable receive interrupt */
UCSRB = (1 << RXCIE) | (1 << RXEN) | (1 << TXEN);
/* 8bit, 1 stopbit */
UCSRC = (1 << URSEL) | (1 << UCSZ1) | (1<< UCSZ0);
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<workspace>
<project>
<path>$WS_DIR$\TencentOS_tiny.ewp</path>
</project>
<batchBuild/>
</workspace>

View File

@@ -0,0 +1,176 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<Project>
<Desktop>
<Static>
<Debug-Log/>
<Workspace>
<ColumnWidths>
<Column0>160</Column0><Column1>27</Column1><Column2>27</Column2><Column3>27</Column3></ColumnWidths>
</Workspace>
<Disassembly>
<MixedMode>1</MixedMode><CodeCovEnabled>0</CodeCovEnabled><CodeCovShow>0</CodeCovShow></Disassembly>
<Build>
<ColumnWidth0>20</ColumnWidth0>
<ColumnWidth1>1395</ColumnWidth1>
<ColumnWidth2>372</ColumnWidth2>
<ColumnWidth3>93</ColumnWidth3>
</Build>
<Register/>
<Watch>
<Format>
<struct_types/>
<watch_formats/>
</Format>
</Watch>
<QuickWatch>
<Column0>100</Column0>
<Column1>136</Column1>
<Column2>120</Column2>
<Column3>100</Column3>
</QuickWatch>
<Memory>
<FindDirection>1</FindDirection><FindAsHex>0</FindAsHex></Memory>
<StaticWatch>
<Column0>138</Column0><Column1>164</Column1><Column2>131</Column2><Column3>100</Column3></StaticWatch>
<Breakpoints/></Static>
<Windows>
<Wnd6>
<Tabs>
<Tab>
<Identity>TabID-3758-6520</Identity>
<TabName>Debug Log</TabName>
<Factory>Debug-Log</Factory>
<Session/>
</Tab>
<Tab>
<Identity>TabID-3236-6530</Identity>
<TabName>Build</TabName>
<Factory>Build</Factory>
<Session/>
</Tab>
<Tab><Identity>TabID-1907-2220</Identity><TabName>Breakpoints</TabName><Factory>Breakpoints</Factory><Session/></Tab></Tabs>
<SelectedTab>0</SelectedTab></Wnd6><Wnd7>
<Tabs>
<Tab>
<Identity>TabID-14507-6524</Identity>
<TabName>Workspace</TabName>
<Factory>Workspace</Factory>
<Session>
<NodeDict><ExpandedNode>TencentOS_tiny</ExpandedNode><ExpandedNode>TencentOS_tiny/ARCH</ExpandedNode><ExpandedNode>TencentOS_tiny/KERNEL</ExpandedNode><ExpandedNode>TencentOS_tiny/TOS-CONFIG</ExpandedNode></NodeDict></Session>
</Tab>
</Tabs>
<SelectedTab>0</SelectedTab></Wnd7><Wnd8>
<Tabs>
<Tab>
<Identity>TabID-25255-6527</Identity>
<TabName>Disassembly</TabName>
<Factory>Disassembly</Factory>
<Session/>
</Tab>
</Tabs>
<SelectedTab>0</SelectedTab></Wnd8><Wnd9>
<Tabs>
<Tab>
<Identity>TabID-15366-20631</Identity>
<TabName>Register</TabName>
<Factory>Register</Factory>
<Session>
<REG1>0</REG1><REG2>0</REG2><Group>0</Group><States>2</States><State0>SP</State0><State1>SREG</State1></Session>
</Tab>
</Tabs>
<SelectedTab>0</SelectedTab></Wnd9><Wnd10>
<Tabs>
<Tab>
<Identity>TabID-24611-31306</Identity>
<TabName>Quick Watch</TabName>
<Factory>QuickWatch</Factory>
<Session>
<Expression>k_curr_task</Expression>
</Session>
</Tab>
<Tab>
<Identity>TabID-28985-25270</Identity>
<TabName>Live Watch</TabName>
<Factory>StaticWatch</Factory>
<Session>
<Expressions>
<Expression><Expression>k_curr_task</Expression></Expression><Expression><Expression>k_next_task</Expression></Expression><Expression><Expression>k_rdyq</Expression></Expression></Expressions>
<TabId>0</TabId><Column0>138</Column0><Column1>164</Column1><Column2>131</Column2><Column3>100</Column3></Session>
</Tab>
</Tabs>
<SelectedTab>1</SelectedTab></Wnd10><Wnd11>
<Tabs>
<Tab>
<Identity>TabID-29862-15633</Identity>
<TabName>Memory</TabName>
<Factory>Memory</Factory>
<Session>
<ZoneNumber>1</ZoneNumber><SelectionAnchor>744</SelectionAnchor><SelectionEnd>744</SelectionEnd><UnitsPerGroup>1</UnitsPerGroup><EndianMode>0</EndianMode><DataCovEnabled>0</DataCovEnabled><DataCovShown>0</DataCovShown><HScroll>0</HScroll><VScroll>46</VScroll></Session>
</Tab>
</Tabs>
<SelectedTab>0</SelectedTab></Wnd11></Windows>
<Editor>
<Pane><Tab><Factory>TextEditor</Factory><Filename>D:\TOS\TencentOS-tiny\kernel\core\tos_task.c</Filename><XPos>0</XPos><YPos>327</YPos><SelStart>8770</SelStart><SelEnd>8770</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>D:\TOS\TencentOS-tiny\board\ATmega32\BSP\src\tim.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>176</SelStart><SelEnd>176</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>D:\TOS\TencentOS-tiny\kernel\core\tos_sem.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>D:\TOS\TencentOS-tiny\arch\AVR\common\tos_cpu.c</Filename><XPos>0</XPos><YPos>102</YPos><SelStart>2470</SelStart><SelEnd>2470</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>D:\TOS\TencentOS-tiny\kernel\core\include\tos_list.h</Filename><XPos>0</XPos><YPos>127</YPos><SelStart>4515</SelStart><SelEnd>4515</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>D:\TOS\TencentOS-tiny\kernel\core\tos_timer.c</Filename><XPos>0</XPos><YPos>268</YPos><SelStart>7654</SelStart><SelEnd>7654</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>D:\TOS\TencentOS-tiny\board\ATMega32\TOS-CONFIG\tos_config.h</Filename><XPos>0</XPos><YPos>15</YPos><SelStart>843</SelStart><SelEnd>843</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>D:\TOS\TencentOS-tiny\kernel\core\tos_sched.c</Filename><XPos>0</XPos><YPos>67</YPos><SelStart>2376</SelStart><SelEnd>2376</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>D:\TOS\TencentOS-tiny\kernel\core\tos_tick.c</Filename><XPos>0</XPos><YPos>93</YPos><SelStart>3338</SelStart><SelEnd>3338</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>D:\TOS\TencentOS-tiny\arch\avr\ATMega32\iccavr\port_s.asm</Filename><XPos>0</XPos><YPos>63</YPos><SelStart>1017</SelStart><SelEnd>1017</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>D:\TOS\TencentOS-tiny\board\ATmega32\USER\main.c</Filename><XPos>0</XPos><YPos>64</YPos><SelStart>1307</SelStart><SelEnd>1307</SelEnd></Tab><ActiveTab>10</ActiveTab><Tab><Factory>TextEditor</Factory><Filename>D:\TOS\TencentOS-tiny\kernel\core\tos_sys.c</Filename><XPos>0</XPos><YPos>94</YPos><SelStart>2465</SelStart><SelEnd>2465</SelEnd></Tab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor>
<Positions>
<Top><Row0><Sizes><Toolbar-01df9cf0><key>iaridepm1</key></Toolbar-01df9cf0></Sizes></Row0><Row1><Sizes><Toolbar-01e89c00><key>debuggergui1</key></Toolbar-01e89c00></Sizes></Row1></Top><Left><Row0><Sizes><Wnd7><Rect><Top>-2</Top><Left>-2</Left><Bottom>459</Bottom><Right>251</Right><x>-2</x><y>-2</y><xscreen>364</xscreen><yscreen>409</yscreen><sizeHorzCX>189583</sizeHorzCX><sizeHorzCY>447484</sizeHorzCY><sizeVertCX>131771</sizeVertCX><sizeVertCY>504376</sizeVertCY></Rect></Wnd7></Sizes></Row0></Left><Right><Row0><Sizes><Wnd8><Rect><Top>-2</Top><Left>-2</Left><Bottom>459</Bottom><Right>630</Right><x>-2</x><y>-2</y><xscreen>364</xscreen><yscreen>409</yscreen><sizeHorzCX>189583</sizeHorzCX><sizeHorzCY>447484</sizeHorzCY><sizeVertCX>329167</sizeVertCX><sizeVertCY>504376</sizeVertCY></Rect></Wnd8></Sizes></Row0><Row1><Sizes><Wnd9><Rect><Top>-2</Top><Left>628</Left><Bottom>459</Bottom><Right>985</Right><x>628</x><y>-2</y><xscreen>364</xscreen><yscreen>409</yscreen><sizeHorzCX>189583</sizeHorzCX><sizeHorzCY>447484</sizeHorzCY><sizeVertCX>185938</sizeVertCX><sizeVertCY>504376</sizeVertCY></Rect></Wnd9></Sizes></Row1><Row2><Sizes><Wnd10><Rect><Top>-2</Top><Left>983</Left><Bottom>459</Bottom><Right>1220</Right><x>983</x><y>-2</y><xscreen>364</xscreen><yscreen>409</yscreen><sizeHorzCX>189583</sizeHorzCX><sizeHorzCY>447484</sizeHorzCY><sizeVertCX>123438</sizeVertCX><sizeVertCY>504376</sizeVertCY></Rect></Wnd10></Sizes></Row2></Right><Bottom><Row0><Sizes><Wnd6><Rect><Top>-2</Top><Left>-2</Left><Bottom>241</Bottom><Right>1922</Right><x>-2</x><y>-2</y><xscreen>1924</xscreen><yscreen>243</yscreen><sizeHorzCX>1002083</sizeHorzCX><sizeHorzCY>265864</sizeHorzCY><sizeVertCX>189583</sizeVertCX><sizeVertCY>447484</sizeVertCY></Rect></Wnd6></Sizes></Row0><Row1><Sizes><Wnd11><Rect><Top>239</Top><Left>-2</Left><Bottom>386</Bottom><Right>1922</Right><x>-2</x><y>239</y><xscreen>1924</xscreen><yscreen>147</yscreen><sizeHorzCX>1002083</sizeHorzCX><sizeHorzCY>160832</sizeHorzCY><sizeVertCX>189583</sizeVertCX><sizeVertCY>447484</sizeVertCY></Rect></Wnd11></Sizes></Row1></Bottom><Float><Sizes/></Float></Positions>
</Desktop>
</Project>

View File

@@ -0,0 +1,18 @@
[DisAssemblyWindow]
NumStates=_ 1
State 1=_ 1
[TraceHelper]
Enabled=0
ShowSource=1
[Log file]
LoggingEnabled=_ 0
LogFile=_ ""
Category=_ 0
[TermIOLog]
LoggingEnabled=_ 0
LogFile=_ ""
[Breakpoints]
Bp0=_ "Code" "{D:\TOS\TencentOS-tiny\kernel\core\tos_sys.c}.107.5@1" 0 0 0 0 "" 0 ""
Bp1=_ "Code" "{D:\TOS\TencentOS-tiny\kernel\core\tos_sys.c}.101.19@1" 0 0 0 0 "" 0 ""
Bp2=_ "Code" "{D:\TOS\TencentOS-tiny\kernel\core\tos_tick.c}.112.9@1" 0 0 0 0 "" 0 ""
Count=3

View File

@@ -0,0 +1,76 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<Workspace>
<ConfigDictionary>
<CurrentConfigs><Project>TencentOS_tiny/Debug</Project></CurrentConfigs></ConfigDictionary>
<Desktop>
<Static>
<Workspace>
<ColumnWidths>
<Column0>130</Column0><Column1>27</Column1><Column2>27</Column2><Column3>27</Column3></ColumnWidths>
</Workspace>
<Build>
<ColumnWidth0>20</ColumnWidth0><ColumnWidth1>1395</ColumnWidth1><ColumnWidth2>372</ColumnWidth2><ColumnWidth3>93</ColumnWidth3></Build>
<TerminalIO/>
<CodeCoveragePlugin/>
<Profiling/>
<Debug-Log/>
</Static>
<Windows>
<Wnd0>
<Tabs>
<Tab>
<Identity>TabID-24042-2046</Identity>
<TabName>Workspace</TabName>
<Factory>Workspace</Factory>
<Session>
<NodeDict><ExpandedNode>TencentOS_tiny</ExpandedNode></NodeDict></Session>
</Tab>
</Tabs>
<SelectedTab>0</SelectedTab></Wnd0><Wnd1>
<Tabs>
<Tab>
<Identity>TabID-5514-2598</Identity>
<TabName>Build</TabName>
<Factory>Build</Factory>
<Session/>
</Tab>
<Tab>
<Identity>TabID-14450-14285</Identity>
<TabName>Debug Log</TabName>
<Factory>Debug-Log</Factory>
<Session/>
</Tab>
</Tabs>
<SelectedTab>0</SelectedTab></Wnd1></Windows>
<Editor>
<Pane><Tab><Factory>TextEditor</Factory><Filename>D:\TOS\TencentOS-tiny\kernel\core\tos_task.c</Filename><XPos>0</XPos><YPos>327</YPos><SelStart>8770</SelStart><SelEnd>8770</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>D:\TOS\TencentOS-tiny\board\ATmega32\BSP\src\tim.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>176</SelStart><SelEnd>176</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>D:\TOS\TencentOS-tiny\kernel\core\tos_sem.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>D:\TOS\TencentOS-tiny\arch\AVR\common\tos_cpu.c</Filename><XPos>0</XPos><YPos>102</YPos><SelStart>2470</SelStart><SelEnd>2470</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>D:\TOS\TencentOS-tiny\kernel\core\include\tos_list.h</Filename><XPos>0</XPos><YPos>127</YPos><SelStart>4515</SelStart><SelEnd>4515</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>D:\TOS\TencentOS-tiny\kernel\core\tos_timer.c</Filename><XPos>0</XPos><YPos>268</YPos><SelStart>7654</SelStart><SelEnd>7654</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>D:\TOS\TencentOS-tiny\board\ATMega32\TOS-CONFIG\tos_config.h</Filename><XPos>0</XPos><YPos>15</YPos><SelStart>843</SelStart><SelEnd>843</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>D:\TOS\TencentOS-tiny\kernel\core\tos_sched.c</Filename><XPos>0</XPos><YPos>67</YPos><SelStart>2376</SelStart><SelEnd>2376</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>D:\TOS\TencentOS-tiny\kernel\core\tos_tick.c</Filename><XPos>0</XPos><YPos>93</YPos><SelStart>3338</SelStart><SelEnd>3338</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>D:\TOS\TencentOS-tiny\arch\avr\ATMega32\iccavr\port_s.asm</Filename><XPos>0</XPos><YPos>63</YPos><SelStart>1017</SelStart><SelEnd>1017</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>D:\TOS\TencentOS-tiny\board\ATmega32\USER\main.c</Filename><XPos>0</XPos><YPos>64</YPos><SelStart>1654</SelStart><SelEnd>1654</SelEnd></Tab><ActiveTab>10</ActiveTab><Tab><Factory>TextEditor</Factory><Filename>D:\TOS\TencentOS-tiny\kernel\core\tos_sys.c</Filename><XPos>0</XPos><YPos>94</YPos><SelStart>2465</SelStart><SelEnd>2465</SelEnd></Tab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor>
<Positions>
<Top><Row0><Sizes><Toolbar-01df9cf0><key>iaridepm1</key></Toolbar-01df9cf0></Sizes></Row0><Row1><Sizes/></Row1></Top><Left><Row0><Sizes><Wnd0><Rect><Top>-2</Top><Left>-2</Left><Bottom>434</Bottom><Right>204</Right><x>-2</x><y>-2</y><xscreen>111</xscreen><yscreen>99</yscreen><sizeHorzCX>77949</sizeHorzCX><sizeHorzCY>154930</sizeHorzCY><sizeVertCX>144663</sizeVertCX><sizeVertCY>682316</sizeVertCY></Rect></Wnd0></Sizes></Row0></Left><Right><Row0><Sizes/></Row0></Right><Bottom><Row0><Sizes><Wnd1><Rect><Top>-2</Top><Left>-2</Left><Bottom>160</Bottom><Right>1426</Right><x>-2</x><y>-2</y><xscreen>1428</xscreen><yscreen>162</yscreen><sizeHorzCX>1002809</sizeHorzCX><sizeHorzCY>253521</sizeHorzCY><sizeVertCX>77949</sizeVertCX><sizeVertCY>154930</sizeVertCY></Rect></Wnd1></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>
</Desktop>
</Workspace>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<workspace>
<project>
<path>$WS_DIR$\TencentOS_tiny.ewp</path>
</project>
<batchBuild/>
</workspace>

View File

@@ -0,0 +1,40 @@
@REM This batch file has been generated by the IAR Embedded Workbench
@REM C-SPY Debugger, as an aid to preparing a command line for running
@REM the cspybat command line utility using the appropriate settings.
@REM
@REM Note that this file is generated every time a new debug session
@REM is initialized, so you may want to move or rename the file before
@REM making changes.
@REM
@REM You can launch cspybat by typing the name of this batch file followed
@REM by the name of the debug file (usually an ELF/DWARF or UBROF file).
@REM
@REM Read about available command line parameters in the C-SPY Debugging
@REM Guide. Hints about additional command line parameters that may be
@REM useful in specific cases:
@REM --download_only Downloads a code image without starting a debug
@REM session afterwards.
@REM --silent Omits the sign-on message.
@REM --timeout Limits the maximum allowed execution time.
@REM
@echo off
if not "%~1" == "" goto debugFile
@echo on
"D:\Program Files\IAR Systems\Embedded Workbench 8.0 AVR\common\bin\cspybat" -f "D:\TOS\TencentOS-tiny\board\ATMega32\IAR\hello_world-iar7.20\settings\TencentOS_tiny.Debug.general.xcl" --backend -f "D:\TOS\TencentOS-tiny\board\ATMega32\IAR\hello_world-iar7.20\settings\TencentOS_tiny.Debug.driver.xcl"
@echo off
goto end
:debugFile
@echo on
"D:\Program Files\IAR Systems\Embedded Workbench 8.0 AVR\common\bin\cspybat" -f "D:\TOS\TencentOS-tiny\board\ATMega32\IAR\hello_world-iar7.20\settings\TencentOS_tiny.Debug.general.xcl" "--debug_file=%~1" --backend -f "D:\TOS\TencentOS-tiny\board\ATMega32\IAR\hello_world-iar7.20\settings\TencentOS_tiny.Debug.driver.xcl"
@echo off
:end

View File

@@ -0,0 +1,31 @@
param([String]$debugfile = "");
# This powershell file has been generated by the IAR Embedded Workbench
# C - SPY Debugger, as an aid to preparing a command line for running
# the cspybat command line utility using the appropriate settings.
#
# Note that this file is generated every time a new debug session
# is initialized, so you may want to move or rename the file before
# making changes.
#
# You can launch cspybat by typing Powershell.exe -File followed by the name of this batch file, followed
# by the name of the debug file (usually an ELF / DWARF or UBROF file).
#
# Read about available command line parameters in the C - SPY Debugging
# Guide. Hints about additional command line parameters that may be
# useful in specific cases :
# --download_only Downloads a code image without starting a debug
# session afterwards.
# --silent Omits the sign - on message.
# --timeout Limits the maximum allowed execution time.
#
if ($debugfile -eq "")
{
& "D:\Program Files\IAR Systems\Embedded Workbench 8.0 AVR\common\bin\cspybat" -f "D:\TOS\TencentOS-tiny\board\ATMega32\IAR\hello_world-iar7.20\settings\TencentOS_tiny.Debug.general.xcl" --backend -f "D:\TOS\TencentOS-tiny\board\ATMega32\IAR\hello_world-iar7.20\settings\TencentOS_tiny.Debug.driver.xcl"
}
else
{
& "D:\Program Files\IAR Systems\Embedded Workbench 8.0 AVR\common\bin\cspybat" -f "D:\TOS\TencentOS-tiny\board\ATMega32\IAR\hello_world-iar7.20\settings\TencentOS_tiny.Debug.general.xcl" --debug_file=$debugfile --backend -f "D:\TOS\TencentOS-tiny\board\ATMega32\IAR\hello_world-iar7.20\settings\TencentOS_tiny.Debug.driver.xcl"
}

View File

@@ -0,0 +1,15 @@
"--cpu=m32"
"--enhanced_core"
"-p"
"D:\Program Files\IAR Systems\Embedded Workbench 8.0 AVR\avr\Config\iom32.ddf"
"--eeprom_size"
"1024"

View File

@@ -0,0 +1,11 @@
"D:\Program Files\IAR Systems\Embedded Workbench 8.0 AVR\avr\bin\avrproc.dll"
"D:\Program Files\IAR Systems\Embedded Workbench 8.0 AVR\avr\bin\avrsim.dll"
"D:\TOS\TencentOS-tiny\board\ATMega32\IAR\hello_world-iar7.20\Debug\Exe\TencentOS_tiny.d90"
--plugin "D:\Program Files\IAR Systems\Embedded Workbench 8.0 AVR\avr/bin/avrlibsupportbat.dll"

View File

@@ -0,0 +1,229 @@
<?xml version="1.0"?>
<Project>
<Desktop>
<Static>
<Debug-Log />
<Workspace>
<ColumnWidths>
<Column0>194</Column0>
<Column1>27</Column1>
<Column2>27</Column2>
<Column3>27</Column3>
</ColumnWidths>
</Workspace>
<Disassembly>
<MixedMode>1</MixedMode>
<CodeCovEnabled>0</CodeCovEnabled>
<CodeCovShow>0</CodeCovShow>
</Disassembly>
<Build>
<ColumnWidth0>20</ColumnWidth0>
<ColumnWidth1>1395</ColumnWidth1>
<ColumnWidth2>372</ColumnWidth2>
<ColumnWidth3>93</ColumnWidth3>
</Build>
</Static>
<Windows>
<Wnd0>
<Tabs>
<Tab>
<Identity>TabID-10315-10600</Identity>
<TabName>Debug Log</TabName>
<Factory>Debug-Log</Factory>
<Session />
</Tab>
<Tab>
<Identity>TabID-9792-10609</Identity>
<TabName>Build</TabName>
<Factory>Build</Factory>
<Session />
</Tab>
</Tabs>
<SelectedTab>0</SelectedTab>
</Wnd0>
<Wnd1>
<Tabs>
<Tab>
<Identity>TabID-21063-10603</Identity>
<TabName>Workspace</TabName>
<Factory>Workspace</Factory>
<Session>
<NodeDict>
<ExpandedNode>TencentOS_tiny</ExpandedNode>
</NodeDict>
</Session>
</Tab>
</Tabs>
<SelectedTab>0</SelectedTab>
</Wnd1>
<Wnd2>
<Tabs>
<Tab>
<Identity>TabID-31812-10606</Identity>
<TabName>Disassembly</TabName>
<Factory>Disassembly</Factory>
<Session />
</Tab>
</Tabs>
<SelectedTab>0</SelectedTab>
</Wnd2>
</Windows>
<Editor>
<Pane>
<Tab>
<Factory>TextEditor</Factory>
<Filename>D:\Program Files\IAR Systems\Embedded Workbench 4.0 AVR\avr\INC\iom32.h</Filename>
<XPos>0</XPos>
<YPos>0</YPos>
<SelStart>537</SelStart>
<SelEnd>537</SelEnd>
</Tab>
<Tab>
<Factory>TextEditor</Factory>
<Filename>D:\TOS\TencentOS-tiny\board\ATmega32\USER\main.c</Filename>
<XPos>0</XPos>
<YPos>39</YPos>
<SelStart>879</SelStart>
<SelEnd>879</SelEnd>
</Tab>
<ActiveTab>1</ActiveTab>
<Tab>
<Factory>TextEditor</Factory>
<Filename>D:\TOS\TencentOS-tiny\board\ATmega32\BSP\src\tim.c</Filename>
<XPos>0</XPos>
<YPos>0</YPos>
<SelStart>0</SelStart>
<SelEnd>0</SelEnd>
</Tab>
<Tab>
<Factory>TextEditor</Factory>
<Filename>D:\TOS\TencentOS-tiny\board\ATmega32\BSP\src\hal_uart.c</Filename>
<XPos>0</XPos>
<YPos>0</YPos>
<SelStart>289</SelStart>
<SelEnd>289</SelEnd>
</Tab>
<Tab>
<Factory>TextEditor</Factory>
<Filename>D:\TOS\TencentOS-tiny\board\ATmega32\BSP\include\uart.h</Filename>
<XPos>0</XPos>
<YPos>0</YPos>
<SelStart>54</SelStart>
<SelEnd>58</SelEnd>
</Tab>
<Tab>
<Factory>TextEditor</Factory>
<Filename>D:\TOS\TencentOS-tiny\board\ATmega32\BSP\src\uart.c</Filename>
<XPos>0</XPos>
<YPos>0</YPos>
<SelStart>282</SelStart>
<SelEnd>282</SelEnd>
</Tab>
<Tab>
<Factory>TextEditor</Factory>
<Filename>D:\TOS\TencentOS-tiny\board\ATmega32\BSP\include\tim.h</Filename>
<XPos>0</XPos>
<YPos>0</YPos>
<SelStart>38</SelStart>
<SelEnd>38</SelEnd>
</Tab>
</Pane>
<ActivePane>0</ActivePane>
<Sizes>
<Pane>
<X>1000000</X>
<Y>1000000</Y>
</Pane>
</Sizes>
<SplitMode>1</SplitMode>
</Editor>
<Positions>
<Top>
<Row0>
<Sizes>
<Toolbar-01df9cf0>
<key>iaridepm1</key>
</Toolbar-01df9cf0>
</Sizes>
</Row0>
<Row1>
<Sizes>
<Toolbar-066c4ea0>
<key>debuggergui1</key>
</Toolbar-066c4ea0>
</Sizes>
</Row1>
</Top>
<Left>
<Row0>
<Sizes>
<Wnd1>
<Rect>
<Top>-2</Top>
<Left>-2</Left>
<Bottom>561</Bottom>
<Right>268</Right>
<x>-2</x>
<y>-2</y>
<xscreen>270</xscreen>
<yscreen>286</yscreen>
<sizeHorzCX>140625</sizeHorzCX>
<sizeHorzCY>312910</sizeHorzCY>
<sizeVertCX>140625</sizeVertCX>
<sizeVertCY>615974</sizeVertCY>
</Rect>
</Wnd1>
</Sizes>
</Row0>
</Left>
<Right>
<Row0>
<Sizes>
<Wnd2>
<Rect>
<Top>-2</Top>
<Left>-2</Left>
<Bottom>561</Bottom>
<Right>268</Right>
<x>-2</x>
<y>-2</y>
<xscreen>270</xscreen>
<yscreen>286</yscreen>
<sizeHorzCX>140625</sizeHorzCX>
<sizeHorzCY>312910</sizeHorzCY>
<sizeVertCX>140625</sizeVertCX>
<sizeVertCY>615974</sizeVertCY>
</Rect>
</Wnd2>
</Sizes>
</Row0>
</Right>
<Bottom>
<Row0>
<Sizes>
<Wnd0>
<Rect>
<Top>-2</Top>
<Left>-2</Left>
<Bottom>284</Bottom>
<Right>1922</Right>
<x>-2</x>
<y>-2</y>
<xscreen>1924</xscreen>
<yscreen>286</yscreen>
<sizeHorzCX>1002083</sizeHorzCX>
<sizeHorzCY>312910</sizeHorzCY>
<sizeVertCX>140625</sizeVertCX>
<sizeVertCY>312910</sizeVertCY>
</Rect>
</Wnd0>
</Sizes>
</Row0>
</Bottom>
<Float>
<Sizes />
</Float>
</Positions>
</Desktop>
<WindowStorage />
</Project>

View File

@@ -0,0 +1,15 @@
[TraceHelper]
Enabled=0
ShowSource=1
[DisAssemblyWindow]
NumStates=_ 1
State 1=_ 1
[Log file]
LoggingEnabled=_ 0
LogFile=_ ""
Category=_ 0
[TermIOLog]
LoggingEnabled=_ 0
LogFile=_ ""
[Breakpoints]
Count=0

View File

@@ -0,0 +1,52 @@
<?xml version="1.0"?>
<settings>
<TraceHelper>
<Enabled>0</Enabled>
<ShowSource>1</ShowSource>
</TraceHelper>
<DisAssemblyWindow>
<NumStates>_ 1</NumStates>
<State_1>_ 1</State_1>
</DisAssemblyWindow>
<Log_file>
<LoggingEnabled>_ 0</LoggingEnabled>
<LogFile>_ ""</LogFile>
<Category>_ 0</Category>
</Log_file>
<TermIOLog>
<LoggingEnabled>_ 0</LoggingEnabled>
<LogFile>_ ""</LogFile>
</TermIOLog>
<Breakpoints>
<Count>0</Count>
</Breakpoints>
<Stack>
<FillEnabled>0</FillEnabled>
<OverflowWarningsEnabled>1</OverflowWarningsEnabled>
<WarningThreshold>90</WarningThreshold>
<SpWarningsEnabled>1</SpWarningsEnabled>
<WarnLogOnly>1</WarnLogOnly>
<UseTrigger>1</UseTrigger>
<TriggerName>main</TriggerName>
<LimitSize>0</LimitSize>
<ByteLimit>50</ByteLimit>
</Stack>
<DataLog>
<LogEnabled>0</LogEnabled>
<GraphEnabled>0</GraphEnabled>
<ShowTimeLog>1</ShowTimeLog>
<SumEnabled>0</SumEnabled>
<ShowTimeSum>1</ShowTimeSum>
</DataLog>
<Breakpoints2>
<Count>0</Count>
</Breakpoints2>
<Trace1>
<Enabled>0</Enabled>
<ShowSource>1</ShowSource>
</Trace1>
<Aliases>
<Count>0</Count>
<SuppressDialog>0</SuppressDialog>
</Aliases>
</settings>

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,17 @@
#ifndef _STDINT_H_
#define _STDINT_H_
typedef unsigned char uint8_t;
typedef char int8_t;
typedef unsigned short uint16_t;
typedef signed short int16_t;
typedef unsigned long uint32_t;
typedef signed long int32_t;
typedef unsigned long long uint64_t;
typedef signed long long int64_t;
#endif

View File

@@ -0,0 +1,53 @@
#ifndef _TOS_CONFIG_H_
#define _TOS_CONFIG_H_
#define TOS_CFG_TASK_PRIO_MAX 10u
#define TOS_CFG_ROUND_ROBIN_EN 0u
#define TOS_CFG_OBJECT_VERIFY_EN 0u
#define TOS_CFG_TASK_DYNAMIC_CREATE_EN 0u
#define TOS_CFG_EVENT_EN 1u
#define TOS_CFG_MMBLK_EN 0u
#define TOS_CFG_MMHEAP_EN 0u
#define TOS_CFG_MMHEAP_DEFAULT_POOL_EN 1u
#define TOS_CFG_MMHEAP_DEFAULT_POOL_SIZE 0x1000
#define TOS_CFG_MUTEX_EN 1u
#define TOS_CFG_MESSAGE_QUEUE_EN 1u
#define TOS_CFG_MAIL_QUEUE_EN 1u
#define TOS_CFG_PRIORITY_MESSAGE_QUEUE_EN 0u
#define TOS_CFG_PRIORITY_MAIL_QUEUE_EN 0u
#define TOS_CFG_TIMER_EN 0u
#define TOS_CFG_PWR_MGR_EN 0u
#define TOS_CFG_TICKLESS_EN 0u
#define TOS_CFG_SEM_EN 1u
#define TOS_CFG_TASK_STACK_DRAUGHT_DEPTH_DETACT_EN 1u
#define TOS_CFG_FAULT_BACKTRACE_EN 0u
#define TOS_CFG_IDLE_TASK_STK_SIZE 128u
#define TOS_CFG_CPU_TICK_PER_SECOND 1000u
#define TOS_CFG_CPU_CLOCK (16000000)
#define TOS_CFG_TIMER_AS_PROC 1u
#endif

View File

@@ -0,0 +1,88 @@
#include "iom32.h"
#include "uart.h"
#include "tos_k.h"
#include "stdio.h"
#pragma vector = TIMER1_OVF_vect
__interrupt void TIMER1_OVF(void)
{
if (tos_knl_is_running()) {
tos_knl_irq_enter();
tos_tick_handler();
tos_knl_irq_leave();
}
}
#pragma vector = USART_RXC_vect
__interrupt void UART0_rx(void)
{
unsigned char rx_data;
rx_data = UDR;
}
void interrupt_enable(void)
{
SREG |= (1 << 7);
}
void task1_entry(void *arg)
{
while (1) {
uart_send_string("task1\r\n");
tos_task_delay(2000);
}
}
void task2_entry(void *arg)
{
while (1) {
uart_send_string("task2\r\n");
tos_task_delay(3000);
}
}
k_task_t task1;
k_stack_t task1_stack[128];
k_task_t task2;
k_stack_t task2_stack[128];
#define APPLICATION_TASK_STK_SIZE 256
k_task_t task_app;
k_stack_t task_app_stack[128];
void application_entry(void * arg)
{
tos_task_create(&task1, "task1", task1_entry, NULL,
4,
task1_stack, sizeof(task1_stack),
0);
tos_task_create(&task2, "task2", task2_entry, NULL,
4,
task2_stack, sizeof(task2_stack),
0);
}
int main(void)
{
uart_init(9600);
timer1();
uart_send_string("welcome to TencentOS tiny!\r\n");
printf("welcome to TencentOS tiny!\r\n");
tos_knl_init();
tos_task_create(&task_app, "app", application_entry, NULL,
4,
task_app_stack, sizeof(task_app_stack),
0);
tos_knl_start();
while (1);
}

View File

@@ -1,7 +1,7 @@
#ifndef __TIM_H_
#define __TIM_H_
void Timer2_Init(uint32_t clock, uint32_t tick_per_second);
void timer1(void);
#endif

View File

@@ -5,11 +5,13 @@
const uint8_t HEX_TABLE[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
int putchar(int c) {
int putchar(int c)
{
if('\n' == (char)c) {
USART_SendData8(USART1, '\r');
while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET);
}
USART_SendData8(USART1, c);
while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET);
return (c);
@@ -17,95 +19,90 @@ int putchar(int c) {
void UART1_Send_Byte(uint8_t ucData)
{
USART_SendData8(USART1, ucData);
while (USART_GetFlagStatus(USART1, USART_FLAG_TXE) == 0)
;
USART_SendData8(USART1, ucData);
while (USART_GetFlagStatus(USART1, USART_FLAG_TXE) == 0)
;
}
//send string
/* send string */
void UART1_Send_String(char *Str)
{
while (*Str != '\0') // "\0" meaning is the end of a string
{
UART1_Send_Byte(*Str);
Str++;
}
while (*Str != '\0') { // "\0" meaning is the end of a string
UART1_Send_Byte(*Str);
Str++;
}
}
void UART1_Send_Dec(unsigned int num, unsigned char ucNumCount)
{
char disp_buffer1[2];
char disp_buffer2[3];
char disp_buffer3[4];
char disp_buffer4[5];
char disp_buffer5[6];
char disp_buffer6[7];
char disp_buffer1[2];
char disp_buffer2[3];
char disp_buffer3[4];
char disp_buffer4[5];
char disp_buffer5[6];
char disp_buffer6[7];
switch (ucNumCount)
{
case 1:
switch (ucNumCount)
{
case 1:
disp_buffer1[0] = HEX_TABLE[num % 10];
disp_buffer1[1] = 0;
disp_buffer1[0] = HEX_TABLE[num % 10];
disp_buffer1[1] = 0;
UART1_Send_String(disp_buffer1);
break;
UART1_Send_String(disp_buffer1);
break;
case 2:
disp_buffer2[0] = HEX_TABLE[(num % 100) / 10];
disp_buffer2[1] = HEX_TABLE[num % 10];
disp_buffer2[2] = 0;
UART1_Send_String(disp_buffer2);
break;
case 2:
disp_buffer2[0] = HEX_TABLE[(num % 100) / 10];
disp_buffer2[1] = HEX_TABLE[num % 10];
disp_buffer2[2] = 0;
UART1_Send_String(disp_buffer2);
break;
case 3:
disp_buffer3[0] = HEX_TABLE[num / 100];
disp_buffer3[1] = HEX_TABLE[(num % 100) / 10];
disp_buffer3[2] = HEX_TABLE[num % 10];
disp_buffer3[3] = 0;
case 3:
disp_buffer3[0] = HEX_TABLE[num / 100];
disp_buffer3[1] = HEX_TABLE[(num % 100) / 10];
disp_buffer3[2] = HEX_TABLE[num % 10];
disp_buffer3[3] = 0;
UART1_Send_String(disp_buffer3);
break;
UART1_Send_String(disp_buffer3);
break;
case 4:
disp_buffer4[0] = HEX_TABLE[(num % 10000) / 1000];
disp_buffer4[1] = HEX_TABLE[(num % 1000) / 100];
disp_buffer4[2] = HEX_TABLE[(num % 100) / 10];
disp_buffer4[3] = HEX_TABLE[num % 10];
disp_buffer4[4] = 0;
case 4:
disp_buffer4[0] = HEX_TABLE[(num % 10000) / 1000];
disp_buffer4[1] = HEX_TABLE[(num % 1000) / 100];
disp_buffer4[2] = HEX_TABLE[(num % 100) / 10];
disp_buffer4[3] = HEX_TABLE[num % 10];
disp_buffer4[4] = 0;
UART1_Send_String(disp_buffer4);
break;
UART1_Send_String(disp_buffer4);
break;
case 5:
case 5:
disp_buffer5[0] = HEX_TABLE[(num % 100000) / 10000];
disp_buffer5[1] = HEX_TABLE[(num % 10000) / 1000];
disp_buffer5[2] = HEX_TABLE[(num % 1000) / 100];
disp_buffer5[3] = HEX_TABLE[(num % 100) / 10];
disp_buffer5[4] = HEX_TABLE[num % 10];
disp_buffer5[5] = 0;
disp_buffer5[0] = HEX_TABLE[(num % 100000) / 10000];
disp_buffer5[1] = HEX_TABLE[(num % 10000) / 1000];
disp_buffer5[2] = HEX_TABLE[(num % 1000) / 100];
disp_buffer5[3] = HEX_TABLE[(num % 100) / 10];
disp_buffer5[4] = HEX_TABLE[num % 10];
disp_buffer5[5] = 0;
UART1_Send_String(disp_buffer5);
break;
UART1_Send_String(disp_buffer5);
break;
case 6:
disp_buffer6[0] = HEX_TABLE[num / 100000];
disp_buffer6[1] = HEX_TABLE[(num % 100000) / 10000];
disp_buffer6[2] = HEX_TABLE[(num % 10000) / 1000];
disp_buffer6[3] = HEX_TABLE[(num % 1000) / 100];
disp_buffer6[4] = HEX_TABLE[(num % 100) / 10];
disp_buffer6[5] = HEX_TABLE[num % 10];
disp_buffer6[6] = 0;
case 6:
UART1_Send_String(disp_buffer6);
break;
disp_buffer6[0] = HEX_TABLE[num / 100000];
disp_buffer6[1] = HEX_TABLE[(num % 100000) / 10000];
disp_buffer6[2] = HEX_TABLE[(num % 10000) / 1000];
disp_buffer6[3] = HEX_TABLE[(num % 1000) / 100];
disp_buffer6[4] = HEX_TABLE[(num % 100) / 10];
disp_buffer6[5] = HEX_TABLE[num % 10];
disp_buffer6[6] = 0;
UART1_Send_String(disp_buffer6);
break;
default:
break;
}
default:
break;
}
}
void UART1_Init(uint32_t uiBaudRate)
@@ -128,3 +125,4 @@ void UART1_Init(uint32_t uiBaudRate)
// enable UART1
USART_Cmd(USART1, ENABLE);
}

View File

@@ -259,7 +259,7 @@
<name>CCIncludePath2</name>
<state>$PROJ_DIR$\..\..\..\..\kernel\core\include</state>
<state>$PROJ_DIR$\..\..\..\..\arch\stm8\common\include</state>
<state>$PROJ_DIR$\..\..\..\..\arch\stm8\iccarm</state>
<state>$PROJ_DIR$\..\..\..\..\arch\stm8\iccstm8</state>
<state>$PROJ_DIR$\..\..\BSP\include</state>
<state>$PROJ_DIR$\..\..\LIB\inc</state>
<state>$PROJ_DIR$\..\..\TOS-CONFIG</state>
@@ -1646,16 +1646,16 @@
<group>
<name>arch</name>
<file>
<name>$PROJ_DIR$\..\..\..\..\arch\stm8\iccarm\port.h</name>
<name>$PROJ_DIR$\..\..\..\..\arch\stm8\iccstm8\port.h</name>
</file>
<file>
<name>$PROJ_DIR$\..\..\..\..\arch\stm8\iccarm\port_c.c</name>
<name>$PROJ_DIR$\..\..\..\..\arch\stm8\iccstm8\port_c.c</name>
</file>
<file>
<name>$PROJ_DIR$\..\..\..\..\arch\stm8\iccarm\port_config.h</name>
<name>$PROJ_DIR$\..\..\..\..\arch\stm8\iccstm8\port_config.h</name>
</file>
<file>
<name>$PROJ_DIR$\..\..\..\..\arch\stm8\iccarm\port_s.S</name>
<name>$PROJ_DIR$\..\..\..\..\arch\stm8\iccstm8\port_s.S</name>
</file>
<file>
<name>$PROJ_DIR$\..\..\..\..\arch\stm8\common\tos_cpu.c</name>

View File

@@ -2160,16 +2160,16 @@
<group>
<name>arch</name>
<file>
<name>$PROJ_DIR$\..\..\..\..\arch\stm8\iccarm\port.h</name>
<name>$PROJ_DIR$\..\..\..\..\arch\stm8\iccstm8\port.h</name>
</file>
<file>
<name>$PROJ_DIR$\..\..\..\..\arch\stm8\iccarm\port_c.c</name>
<name>$PROJ_DIR$\..\..\..\..\arch\stm8\iccstm8\port_c.c</name>
</file>
<file>
<name>$PROJ_DIR$\..\..\..\..\arch\stm8\iccarm\port_config.h</name>
<name>$PROJ_DIR$\..\..\..\..\arch\stm8\iccstm8\port_config.h</name>
</file>
<file>
<name>$PROJ_DIR$\..\..\..\..\arch\stm8\iccarm\port_s.S</name>
<name>$PROJ_DIR$\..\..\..\..\arch\stm8\iccstm8\port_s.S</name>
</file>
<file>
<name>$PROJ_DIR$\..\..\..\..\arch\stm8\common\tos_cpu.c</name>

View File

@@ -259,7 +259,7 @@
<name>CCIncludePath2</name>
<state>$PROJ_DIR$\..\..\..\..\kernel\core\include</state>
<state>$PROJ_DIR$\..\..\..\..\arch\stm8\common\include</state>
<state>$PROJ_DIR$\..\..\..\..\arch\stm8\iccarm</state>
<state>$PROJ_DIR$\..\..\..\..\arch\stm8\iccstm8</state>
<state>$PROJ_DIR$\..\..\BSP\include</state>
<state>$PROJ_DIR$\..\..\LIB\inc</state>
<state>$PROJ_DIR$\..\..\TOS-CONFIG</state>
@@ -1648,16 +1648,16 @@
<group>
<name>arch</name>
<file>
<name>$PROJ_DIR$\..\..\..\..\arch\stm8\iccarm\port.h</name>
<name>$PROJ_DIR$\..\..\..\..\arch\stm8\iccstm8\port.h</name>
</file>
<file>
<name>$PROJ_DIR$\..\..\..\..\arch\stm8\iccarm\port_c.c</name>
<name>$PROJ_DIR$\..\..\..\..\arch\stm8\iccstm8\port_c.c</name>
</file>
<file>
<name>$PROJ_DIR$\..\..\..\..\arch\stm8\iccarm\port_config.h</name>
<name>$PROJ_DIR$\..\..\..\..\arch\stm8\iccstm8\port_config.h</name>
</file>
<file>
<name>$PROJ_DIR$\..\..\..\..\arch\stm8\iccarm\port_s.S</name>
<name>$PROJ_DIR$\..\..\..\..\arch\stm8\iccstm8\port_s.S</name>
</file>
<file>
<name>$PROJ_DIR$\..\..\..\..\arch\stm8\common\tos_cpu.c</name>

View File

@@ -2160,16 +2160,16 @@
<group>
<name>arch</name>
<file>
<name>$PROJ_DIR$\..\..\..\..\arch\stm8\iccarm\port.h</name>
<name>$PROJ_DIR$\..\..\..\..\arch\stm8\iccstm8\port.h</name>
</file>
<file>
<name>$PROJ_DIR$\..\..\..\..\arch\stm8\iccarm\port_c.c</name>
<name>$PROJ_DIR$\..\..\..\..\arch\stm8\iccstm8\port_c.c</name>
</file>
<file>
<name>$PROJ_DIR$\..\..\..\..\arch\stm8\iccarm\port_config.h</name>
<name>$PROJ_DIR$\..\..\..\..\arch\stm8\iccstm8\port_config.h</name>
</file>
<file>
<name>$PROJ_DIR$\..\..\..\..\arch\stm8\iccarm\port_s.S</name>
<name>$PROJ_DIR$\..\..\..\..\arch\stm8\iccstm8\port_s.S</name>
</file>
<file>
<name>$PROJ_DIR$\..\..\..\..\arch\stm8\common\tos_cpu.c</name>