Миландр

Ключевым подразделением нашей компании является Центр Проектирования интегральных микросхем
Текущее время: 2017-ноя-19 19:15

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: Обновляемая версия прошивки
СообщениеДобавлено: 2017-окт-02 15:44 
Не в сети

Зарегистрирован: 2016-янв-29 17:53
Сообщения: 53
Можно ли в kail v5.16a сделать так, что бы при каждой компиляции прошивка сохраняла оригинальную версию?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Обновляемая версия прошивки
СообщениеДобавлено: 2017-окт-02 16:02 
Не в сети

Зарегистрирован: 2010-авг-30 19:12
Сообщения: 379
Не знаю, что вы имеете ввиду под фразой "при каждой компиляции прошивка сохраняла оригинальную версию"?

Возможно вам поможет вкладка USER - в опциях проекта.
Она позволяет запустить пользовательскую программу до или после компиляции.
И да, пакет называется Keil (не Kail)
Удачи.

_________________
О сколько нам открытий чудных
Готовит просвященья дух,
И опыт - сын ошибок трудных ... (Пушкин)

Пергаменты не утоляют жажду ("Фауст",Гете)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Обновляемая версия прошивки
СообщениеДобавлено: 2017-окт-03 14:31 
Не в сети

Зарегистрирован: 2016-янв-29 17:53
Сообщения: 53
Допустим я создал программу которая в файл version.h пишет
#define __DATA__ (03.10.2017)
#define __TIME__ (14:30)

Программа находится на C:\TIME.exe

У меня не получается запустить программу перед компиляцией. Помогите рахобраться


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Обновляемая версия прошивки
СообщениеДобавлено: 2017-окт-05 16:42 
Не в сети

Зарегистрирован: 2016-янв-29 17:53
Сообщения: 53
Написал консоль приложение для изменения файла version.h.
Открыть Исходный код консольпрограммы
Код:
#include <iostream>
#include <fstream>
#include <ctime>
#include <windows.h>
using namespace std;
int main()
{
   Sleep(2000);
   struct tm newtime;
   __time32_t aclock;
   _time32(&aclock);   // Get time in seconds. 
   _localtime32_s(&newtime, &aclock);   // Convert time to struct tm form. 
   ofstream fout;
   fout.open("version.h"); // связываем объект с файлом
   if (!fout.is_open()) // если файл не открыт
   {
      cout << "Файл не может быть открыт!\n"; // сообщить об этом
      cin.get();
      return 1;
   }
   else
   {
      fout << "#ifndef __VERSION_H__" << endl;
      fout << "#define __VERSION_H__" << endl;
      fout << "#define TIME (\"";
      fout << newtime.tm_year + 1900 << "/" << newtime.tm_mon + 1 << "/" << newtime.tm_mday << " ";
      fout << newtime.tm_hour << ":" << newtime.tm_min << ":" << newtime.tm_sec;
      fout << "\")" << endl; // запись строки в файл
      fout << "#endif    //   __VERSION_H__" << endl;
      fout.close(); // закрываем файл
   }
   return 0;
}
Закрыть

А в проекте keil подключен #include "version.h".
И во вкладке user вбит путь экзешника, и экзешник отрабатывает. Но файл почему то не меняется
Изображение


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Обновляемая версия прошивки
СообщениеДобавлено: 2017-окт-05 17:20 
Не в сети

Зарегистрирован: 2016-янв-29 17:53
Сообщения: 53
Оказалось что экзешник запускался не из той папки где находился, а из папки проекта...
Код программы чуть переделал и все заработало!
Открыть
Код:
#include <iostream>
#include <fstream>
#include <ctime>
using namespace std;
int main()
{
   struct tm newtime;
   __time32_t aclock;
   _time32(&aclock);   // Get time in seconds. 
   _localtime32_s(&newtime, &aclock);   // Convert time to struct tm form. 
   ofstream fout;
   fout.open("code\\version.h"); // связываем объект с файлом
   if (!fout.is_open()) // если файл не открыт
   {
      cout << "Can't open file !\n"; // сообщить об этом
      cin.get();
      return 1;
   }
   else
   {
      fout << "#ifndef __VERSION_H__" << endl;
      fout << "#define __VERSION_H__" << endl;
      fout << "#define TIME (\"";
      fout << newtime.tm_year + 1900 << "/" << newtime.tm_mon + 1 << "/" << newtime.tm_mday << " ";
      fout << newtime.tm_hour << ":" << newtime.tm_min << ":" << newtime.tm_sec;
      fout << "\")" << endl; // запись строки в файл
      fout << "#endif    //   __VERSION_H__" << endl;
      fout.close(); // закрываем файл
   }
   return 0;
}
Закрыть


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB