程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 10716|回复: 0
打印 上一主题 下一主题

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
/ c5 i( \+ U2 u' ?#include <linux/init.h>0 p& |, {  [7 v
#include <linux/module.h>- Y: U, s8 x( a# S+ r
#include <linux/kernel.h>5 u# Z$ k1 e! ~3 D1 k4 G
#include <linux/types.h>  O% }3 Y4 a! @2 W. F5 f8 g* X2 r
#include <linux/gpio.h># `; u+ ?9 \' G6 u
#include <linux/leds.h>
/ l1 v( W& J. J: A( @#include <linux/platform_device.h>1 m6 u6 C5 v& l) k

4 y2 @% ]6 d  R#include <asm/mach-types.h>* g  o1 b! F* n  j6 F5 V
#include <asm/mach/arch.h>
1 {" t# Z/ P+ g2 ?) Z" z0 G4 L" E#include <mach/da8xx.h>% \- c: ]; w0 L  [( N9 c  M
#include <mach/mux.h>  e% l& c/ @4 Q% E; ]) q9 A: X5 R: R

. D3 L0 F. r" ], i6 W( L$ p% R#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
3 ]/ H! p! i3 }#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
. }& k9 r! f/ g# q- X+ i+ l6 A#define DA850_USER_LED2        GPIO_TO_PIN(0, 1), v3 w) |, ~! E. N7 B9 N3 ~
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
/ i6 @; `! |  J" R, s6 D( h- ~( T! g0 Q, f+ X1 s$ g. U
/* assign the tl som board LED-GPIOs*/
% h% u  _2 O% ?% i( ostatic const short da850_evm_tl_user_led_pins[] = {
% M7 O) S4 v2 ~/ n1 D6 `        /* These pins are definition at <mach/mux.h> file */6 y5 p& [0 `9 \& E5 @" O
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
: j% ?; g$ ~( @/ i1 p5 D        -1
3 p( Z7 P/ _+ ]* S) X' V};
0 F6 S$ K: g5 M1 R5 Z' I$ s. v+ }, n2 Z8 {' ^$ [: J* D
static struct gpio_led da850_evm_tl_leds[] = {
0 z  z# J6 W" s4 J        {' o4 B9 B9 u3 ]3 K
                .active_low = 0,8 h. i  c' Q; |. e$ ^
                .gpio = DA850_USER_LED0,. W. T# n' F" x+ H, {7 }
                .name = "user_led0",0 b3 E8 a" A5 r  P% `
                .default_trigger = "default-on",
0 g! K( Z% \" M" J+ r# i1 R        },
" E1 K  L5 [- o! ]        {6 J) A3 c& S) R$ V. N7 A
                .active_low = 0,
$ E% h+ W$ R- l' w; T                .gpio = DA850_USER_LED1," |4 B7 i3 t* t% m1 d3 v
                .name = "user_led1",8 f0 D0 ]& |8 n" Z0 K/ @) \2 [
                .default_trigger = "default-on",2 |' }- D2 x9 t, w2 ?
        },
: {  p) Q! [% S! u        {
) i3 B4 {) s) p  p9 H                .active_low = 0,/ W* e( g8 S4 G/ o
                .gpio = DA850_USER_LED2,
/ m( r9 L/ r, r% J! p: Y6 W8 d                .name = "user_led2",( r4 I3 G; C& H5 m
                .default_trigger = "default-on",- t% J  L& O( N) ?2 q4 ]
        },: a/ \5 w+ ]9 _8 k- n' [$ D9 M
        {
  g" |0 U2 _1 y0 F2 q! s                .active_low = 0,
, U' D7 \$ z% v5 L                .gpio = DA850_USER_LED3,
  i* b/ j! F( {. _1 ^, }# A$ y  o                .name = "user_led3",/ C3 l; u& E; `7 y: e2 m+ t+ ]5 i* |
                .default_trigger = "default-on",
0 p/ B5 Z5 R7 i: M+ K" Z3 m        },
; K" Q, s/ n1 i$ b};* O) b; v/ Y; }8 f& H2 Z5 N; @
. `! ^' L& w' b: @# f
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
1 i- B0 Z  F; i3 F* d8 g        .leds = da850_evm_tl_leds,
' @) k* S7 O. \) p$ b$ l# b9 p        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
9 I. F7 |) w) ~& }};( D# w# g4 P7 l- \0 f5 m) c; F: U$ d

6 v& k+ }0 ]2 h( fstatic void led_dev_release(struct device *dev), @/ V3 o7 `; w6 W0 x
{, D1 C% H+ }7 ^% O3 J1 w$ A6 r; }
};
5 \5 a9 T; y7 u1 P3 r$ j; j) K7 Y: c8 `* l, C3 C8 W
static struct platform_device da850_evm_tl_leds_device = {  _3 w' h: x/ g
        .name                = "leds-gpio",
1 i) H0 {* o$ e- H        .id                = 1,
6 z  X5 i0 X2 v        .dev = {, t! Y! A" J" j& C0 U
                .platform_data = &da850_evm_tl_leds_pdata,
: i7 l0 @) F1 @# U# _) j. {( T. X; y                .release = led_dev_release,
5 I2 P- [. A0 {) `- j2 J2 \        }1 [8 q; Y% k3 [) D$ X* Y" @8 _/ T% H
};
# N: e- r& O; h& l1 B. k+ ^1 q; Y! N7 A' c( c* U) \
static int __init led_platform_init(void)
9 |4 y0 G! l5 e1 Z8 L, }8 A3 b{( o% h, t, V2 w6 f3 O4 z7 m1 d% @
        int ret;! P/ a  `! V! p8 v2 g" A1 C1 Q$ D
#if 0$ M2 a5 g" m+ H# N( z3 t0 `( r
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);, D! j! C0 j2 V( N. V
        if (ret)5 Z" B2 I$ f% ?5 T! G# B
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
. Y0 t9 |$ x  [8 y8 C5 X                                "%d\n", ret);
0 E( E& d% w7 N# l. |) p#endif
0 t% f( m/ [5 q9 Z        ret = platform_device_register(&da850_evm_tl_leds_device);
. R, T% Q4 r8 y9 p- q        if (ret). k$ V$ r- H" T/ S
                pr_warning("Could not register som GPIO expander LEDS");
1 A3 `7 M1 f, Y. O+ |+ G5 k        else
# K  Y2 J2 ~, Y' j! Z3 `                printk(KERN_INFO "LED register sucessful!\n");
8 i' P2 _2 G" q: P" A# N) O/ [  K' I! j4 J% \( M8 H
        return ret;1 s1 n/ A+ W$ [/ Z* _, h; t# z7 T
}
6 m/ h# s8 f( y9 I* L
: E3 i+ A* k7 ]7 @6 A0 l; cstatic void __exit led_platform_exit(void)
1 V+ E- g3 j0 x4 _{7 b  J0 \: B& U
        platform_device_unregister(&da850_evm_tl_leds_device);
  j* K, N4 \* f8 z7 M  _+ |- g
) G- Q! r- ^. {% k        printk(KERN_INFO "LED unregister!\n");
, x. Z6 |+ q5 {}' e! Y9 C$ v% x6 W- x/ N* R

9 |& h* u( u- amodule_init(led_platform_init);8 L7 x$ e- `- V# J" J9 u4 h1 H
module_exit(led_platform_exit);7 E; g% o* \# P1 T, o4 r# N; e, r, f

/ B, J7 t' ^& O: U- _! s5 ZMODULE_DESCRIPTION("Led platform driver");* u6 A4 h0 {$ ?$ w+ q# o
MODULE_AUTHOR("Tronlong");
2 D% d/ O! ^, Q( W4 \$ [MODULE_LICENSE("GPL");/ L" [& _5 `  `# f1 u

6 N6 t4 C' k) y; i6 H- ?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

点击跳转“创龙科技服务通”

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2026-3-25 07:18 , Processed in 0.040123 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表