]> rtime.felk.cvut.cz Git - pes-rpp/rpp-simulink.git/blob - rpp/rpp/rpp_setup.m
Improved RPP Target library documentation.
[pes-rpp/rpp-simulink.git] / rpp / rpp / rpp_setup.m
1 % Copyright (C) 2013 Czech Technical University in Prague
2 %
3 % Authors:
4 %     - Carlos Jenkins <carlos@jenkins.co.cr>
5 %
6 % This program is free software; you can redistribute it and/or modify
7 % it under the terms of the GNU General Public License as published by
8 % the Free Software Foundation; either version 2 of the License, or
9 % (at your option) any later version.
10 %
11 % This program is distributed in the hope that it will be useful,
12 % but WITHOUT ANY WARRANTY; without even the implied warranty of
13 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 % GNU General Public License for more details.
15 %
16 % You should have received a copy of the GNU General Public License
17 % along with this program.  If not, see <http://www.gnu.org/licenses/>.
18 %
19 % File : rpp_setup.m
20 % Abstract:
21 %     RPP Target install script.
22 %
23 %     IMPORTANT: This script _MUST_ be run by user after extracting the target
24 %                package and before using the target. To execute:
25 %
26 %         1. Start Matlab.
27 %         2. Change directory (cd) to this file folder.
28 %         3. Execute rpp_setup() on command window.
29 %
30 % References:
31 %     rtw_ug.pdf p. 1137
32
33
34 function rpp_setup()
35
36     % Get current target path in user's filesystem
37     currentPath = pwd();
38     targetPath = currentPath(1:end-length('/rpp'));
39
40     % Add target system folders to Matlab path
41     addpath(fullfile(targetPath, 'rpp'));
42     addpath(fullfile(targetPath, 'demos'));
43     addpath(fullfile(targetPath, 'blocks'));
44     %addpath(fullfile(targetPath, 'help'));
45     savepath();
46
47     % Ask user setup variables
48     possiblePath = '/usr/local/ti/ccsv5/tools/compiler/arm_5.0.1';
49
50     CompilerRoot = fix_slash(uigetdir(possiblePath, ...
51         'CCS Compiler root directory: (<ccs_root>/tools/compiler/arm_5.X.X)'));
52     CCSRoot      = fileparts(fileparts(fileparts(CompilerRoot)));
53     TargetRoot   = fix_slash(currentPath);
54     RppLibRoot   = fullfile(fileparts(TargetRoot), 'lib');
55
56     % Save preferences
57     if ispref('rpp')
58         rmpref('rpp');
59     end
60     addpref('rpp', 'CompilerRoot', CompilerRoot);
61     addpref('rpp', 'CCSRoot'     , CCSRoot);
62     addpref('rpp', 'TargetRoot'  , TargetRoot);
63     addpref('rpp', 'RppLibRoot'  , RppLibRoot);
64
65
66     % Generate blocks
67     cd('../blocks');
68     compile_blocks();
69     cd(currentPath);
70
71     % Generate help
72     % FIXME: Write and generate help
73     %cd('../help/source');
74     %genenerate_help();
75     %cd(currentPath);
76
77     % Apply changes and finish
78     sl_refresh_customizations();
79     disp('<strong>RPP</strong> Target setup is complete!');
80     disp('    Current configuration:');
81     disp(['        CompilerRoot : ', CompilerRoot]);
82     disp(['        CCSRoot      : ', CCSRoot]);
83     disp(['        TargetRoot   : ', TargetRoot]);
84     disp(['        RppLibRoot   : ', RppLibRoot]);
85     disp('Explore <a href="matlab:cd([getpref(''rpp'',''TargetRoot''),''/../demos''])">demos</a> directory.');
86     %disp('Explore <a href="matlab:cd([getpref(''rpp'',''TargetRoot''),''/../demos''])">demos</a> directory and access <a href="matlab:doc -classic">documentation</a>');
87 end
88
89
90 function path = fix_slash(path0)
91     path = path0;
92     if ispc
93         path(path=='\')='/';
94     end
95 end