程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
2 ?. @& T. k7 {8 s, W2 M#include <linux/init.h>) R* o  z3 o; A* ?6 f
#include <linux/module.h>; z+ O5 _2 I) ]6 K) v0 i% M. q5 y
#include <linux/kernel.h>6 g# h8 L8 K" @1 z) |
#include <linux/types.h>
  {+ |: a- k, D" Q#include <linux/gpio.h>
* V& a2 a0 [: ?. ~0 x#include <linux/leds.h>& j+ _0 ^) M2 C1 r$ J" n
#include <linux/platform_device.h>4 q2 t, u5 i' q8 V9 A& m5 Q

8 v6 K/ e; M2 R2 y#include <asm/mach-types.h>
% Y3 n7 ~) {- L#include <asm/mach/arch.h>2 ^/ n5 s0 M0 C# O
#include <mach/da8xx.h>/ o5 `6 r4 J% e* o) J5 {/ w! P
#include <mach/mux.h>& ?- i' l/ N. j- @

% E- R7 c5 j3 S: @#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)/ Q2 r% n/ {$ |/ e) T* Q' o7 l# J
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)/ B7 Z& x; C# P7 o
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
3 t; Q8 @; W# W#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)0 \4 ?4 X) h: Q. q

. }6 Y' l/ P2 ?  b2 F$ n# ]/* assign the tl som board LED-GPIOs*/
' _, `  T  q1 @' |4 {static const short da850_evm_tl_user_led_pins[] = {
& f& t% s% P  V) S+ }- p5 a/ h' H+ c        /* These pins are definition at <mach/mux.h> file */
; @$ U& j: l  r3 i5 y; f! z5 N        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
$ ]' b: A1 H. Z6 |; ~        -1( ]+ ?% E$ n6 T; \- O
};
) s1 F3 \! ~( Z$ j6 D
; M) X7 E2 M  H8 f9 n5 c5 C# f6 Sstatic struct gpio_led da850_evm_tl_leds[] = {
& G4 p4 D. y6 ^$ v: X+ T        {6 x; y% O7 A8 X! i: m9 _* ?' r
                .active_low = 0,: x8 e- R1 `, \4 i
                .gpio = DA850_USER_LED0,! i7 |$ K7 w7 g  p
                .name = "user_led0",
% p5 r+ U/ ]+ \6 O                .default_trigger = "default-on",! `6 [/ k/ R7 O, A$ L9 l( F
        },
1 j3 H4 r  U6 R" r" b& B: Y        {4 i$ ?/ P' `; h# U# r
                .active_low = 0,0 G' W  r; J0 c; T9 X
                .gpio = DA850_USER_LED1,* l" b) W6 ^; |+ M6 i
                .name = "user_led1",
- e" {+ n! Y) F  a6 u9 s                .default_trigger = "default-on",
' _/ F+ \7 Z5 S$ O( C, z        },6 a7 l. P# r% h
        {3 h# r5 K9 N! z: |- g4 ~
                .active_low = 0,% I: n' F6 Y2 u8 n6 x& f- {
                .gpio = DA850_USER_LED2,1 ^- k# X7 U) L7 K! Y0 H! W
                .name = "user_led2",
+ H& A" B& b2 i, k4 w                .default_trigger = "default-on",
/ q- ]4 }) R% j5 D- ~: v/ g        },& l; X4 ~0 \( s* F
        {5 B, U" t' A/ [4 s  W
                .active_low = 0,
5 i/ y3 l7 k* a                .gpio = DA850_USER_LED3,1 z. @, I" n# Q6 ?
                .name = "user_led3",4 m( g' ]* {. \4 t1 Q9 @
                .default_trigger = "default-on",
: G# p9 _* {4 p! ]1 x        },7 Y* K& b* c) Z; }7 {+ j
};
+ a7 G" b  f2 |% j. R8 _; R
6 ?9 q( D7 C8 x, c" l1 Y# P9 E! T- Istatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
$ U0 p$ ?, u* `/ U5 V        .leds = da850_evm_tl_leds,! V: Z  O* n5 T. e3 Y8 d
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
8 P" ?0 X3 G. Q1 I};
, J7 \% c! T- ]0 a6 W" Y5 d  ~3 Q! Y
static void led_dev_release(struct device *dev)
* y4 C7 c; z! Q4 Y# i{
' b! g- w3 N7 {, L3 x" g% N9 M0 E  B  p};' W8 Y( r- ~9 x. z) T% H0 |
' j) x, J- Y( a& l7 F
static struct platform_device da850_evm_tl_leds_device = {
* z" {+ q8 a- v( p3 U4 C        .name                = "leds-gpio",- r6 \: l; R0 w9 i9 R  ~3 f- E
        .id                = 1,$ i5 e& z! }$ r* }8 y% M3 y$ d
        .dev = {
5 e( q& d9 v/ C; G- e                .platform_data = &da850_evm_tl_leds_pdata,6 L" B( d, Q6 ^6 `
                .release = led_dev_release,
; z6 b% P0 ^% m9 P        }
1 q) T) L* S- L};
/ j: {& @# \: B. ^
& w" X7 m3 y" `3 g$ Q* X; Jstatic int __init led_platform_init(void)
# h% o3 V1 j/ I' X2 Z  q3 e4 z{
' N' K7 G" d  Q7 a        int ret;
% g- t& t: W" Y4 D* a#if 0, g( g4 s: t% F% f" W; @# r* Y2 p
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);! T  y! t8 {" Y8 B' m# R) J
        if (ret)
, ~6 g  _" v6 q) R0 o                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"" k- d, r# E, {
                                "%d\n", ret);9 s5 d0 u5 L# a7 Y8 J
#endif
# E& U" l% F/ C" ~" s        ret = platform_device_register(&da850_evm_tl_leds_device);
) i2 H& h( L" q        if (ret)
& N" g. A- }4 V) d/ m  |; a$ i                pr_warning("Could not register som GPIO expander LEDS");5 }! J. ?0 M) u! x8 z
        else
# c3 \1 X' r/ g1 S: e8 G                printk(KERN_INFO "LED register sucessful!\n");
* t/ n5 _+ d* ^: z/ P
# p" V( w2 t" W, n( w. y        return ret;( c& ~# l8 i, G3 o  Y( X
}
3 t3 Q% T4 I8 o3 X1 L, ^: r
" c: P5 r/ i" k$ L1 x3 O% H( ostatic void __exit led_platform_exit(void)
! Q3 r+ y8 r  ^' v$ G  r{
9 H3 [. ?1 D  F8 k7 X# G" w        platform_device_unregister(&da850_evm_tl_leds_device);
& S; a: l: l9 _8 i2 H) G
) E8 v& R- p! c9 g        printk(KERN_INFO "LED unregister!\n");
4 `1 q! Z. j  E; O}
( R( C6 _* L2 }% `) k7 t6 m5 x7 \
module_init(led_platform_init);; A& W: {: k. i+ Q2 V, l1 C$ ^) r
module_exit(led_platform_exit);0 h! v  M. o& B6 ]( c; O6 o
2 g$ G1 }. h3 ~: g! c
MODULE_DESCRIPTION("Led platform driver");5 H1 }1 ^8 }3 x% f4 a
MODULE_AUTHOR("Tronlong");8 J" c, {! O; T* ]) _8 ~& e
MODULE_LICENSE("GPL");
6 [# B3 a8 x. E8 x# j$ D" S& [9 n/ N! O: q
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-28 16:25 , Processed in 0.038822 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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