22#include "stdlib.h"
33#include "stdio.h"
44
5- u32 xorshift32 (u32 * state ) {
5+ u32 xorshift32 (u32 * state ) { // генератор псевдослучайных чисел xorshift32
66 u32 x = state [0 ];
77 x ^= x << 13 ;
88 x ^= x >> 17 ;
@@ -11,6 +11,7 @@ u32 xorshift32(u32* state) {
1111 return x ;
1212}
1313
14+ // рандомное число в диапазоне
1415u32 rand_range (u32 * state , u32 min , u32 max ) {
1516 if (max < min ) {
1617 return 0 ;
@@ -23,6 +24,7 @@ u32 rand(u32* state) {
2324 return xorshift32 (state );
2425}
2526
27+ // reboot
2628void reboot () {
2729 unsigned char reset_value = 0x06 ;
2830 __asm__ __volatile__ (
@@ -33,6 +35,7 @@ void reboot() {
3335 );
3436}
3537
38+ // wait ожидание
3639void wait (int ms ) {
3740 volatile int count ;
3841 while (ms -- )
@@ -45,14 +48,14 @@ void wait(int ms) {
4548 }
4649}
4750
48- void memory_copy (u8 * source , u8 * dest , int nbytes ) {
51+ void memory_copy (u8 * source , u8 * dest , int nbytes ) { // копируем память
4952 int i ;
5053 for (i = 0 ; i < nbytes ; i ++ ) {
5154 * (dest + i ) = * (source + i );
5255 }
5356}
5457
55- void memory_set (u8 * dest , u8 val , u32 len ) {
58+ void memory_set (u8 * dest , u8 val , u32 len ) { // задаем память
5659 u8 * temp = (u8 * )dest ;
5760 for ( ; len != 0 ; len -- ) * temp ++ = val ;
5861}
@@ -77,8 +80,7 @@ void int_to_ascii(int n, char str[]) {
7780int strtoint (char * str ) {
7881 int rc = 0 ;
7982 unsigned i = 0 ;
80- // C guarantees that '0'-'9' have consecutive values
81- while (str [i ] >= '0' && str [i ] <= '9' ) {
83+ while (str [i ] >= '0' && str [i ] <= '9' ) { // перевод строк в числа
8284 rc *= 10 ;
8385 rc += str [i ] - '0' ;
8486 ++ i ;
@@ -87,7 +89,7 @@ int strtoint(char* str) {
8789 return rc ;
8890}
8991
90- void hex_to_ascii (int n , char str []) {
92+ void hex_to_ascii (int n , char str []) { // из hex в строку
9193 append (str , '0' );
9294 append (str , 'x' );
9395
@@ -108,14 +110,14 @@ void hex_to_ascii(int n, char str[]) {
108110 else append (str , tmp + '0' );
109111}
110112
111- void strcpy (char * dest , char * src ) {
113+ void strcpy (char * dest , char * src ) { // копирование строки
112114 while (* src ) {
113115 * dest ++ = * src ++ ;
114116 }
115117 * dest = '\0' ;
116118}
117119
118- int hex_strtoint (char * str ) {
120+ int hex_strtoint (char * str ) { // строка в число hex
119121 int result = 0 ;
120122 while (* str ) {
121123 result *= 16 ;
@@ -128,7 +130,7 @@ int hex_strtoint(char *str) {
128130}
129131
130132/* K&R */
131- void reverse (char s []) {
133+ void reverse (char s []) { // реверс
132134 int c , i , j ;
133135 for (i = 0 , j = strlen (s )- 1 ; i < j ; i ++ , j -- ) {
134136 c = s [i ];
@@ -138,19 +140,19 @@ void reverse(char s[]) {
138140}
139141
140142/* K&R */
141- int strlen (char s []) {
143+ int strlen (char s []) { // длина строки
142144 int i = 0 ;
143145 while (s [i ] != '\0' ) ++ i ;
144146 return i ;
145147}
146148
147- void append (char s [], char n ) {
149+ void append (char s [], char n ) { // добавление новой строки в исходную
148150 int len = strlen (s );
149151 s [len ] = n ;
150152 s [len + 1 ] = '\0' ;
151153}
152154
153- void backspace (char s []) {
155+ void backspace (char s []) { // бекспейс
154156 int len = strlen (s );
155157
156158 s [len - 1 ] = '\0' ;
0 commit comments