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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
% r1 o/ b5 k1 A2 a0 k1 l#include <linux/init.h>
8 D. r, E( z( M- J#include <linux/module.h>
  a- \2 B8 b' G; k7 s' ?1 J#include <linux/kernel.h>
8 `! e7 ^: E9 M4 ~5 j/ H" M1 L#include <linux/types.h>" ~% \0 A! `% I
#include <linux/gpio.h>$ M7 [( x9 l2 R7 F6 R+ p
#include <linux/leds.h>
1 p/ v0 ?8 h) t% z; p9 E#include <linux/platform_device.h>5 @* l/ N  Y) g2 K) d+ @) [4 v4 ?

/ r  F8 k% v( o: N3 D#include <asm/mach-types.h>" w! c) C( c7 S% q3 k1 I1 O3 |
#include <asm/mach/arch.h>$ S6 ~* H; k1 V9 W; s6 u: H- f/ q
#include <mach/da8xx.h>' k; U' N* E  `3 D3 [* J9 h$ e
#include <mach/mux.h>9 m; K  f% l3 z# Y

& I4 D! I! _- ~" ^$ S( p#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)6 ?; \$ }' s/ J- ?2 w
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
( G( F% L& Q6 k' a1 t3 Z: B: u#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)$ Q, E: A; O  j* g) @4 e: t
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)  f* F" S; `! {. X4 l- K
1 S* r8 x* t& q" ]! J1 C- M/ N: ]
/* assign the tl som board LED-GPIOs*/
, ~% Z' C- s9 g# x# sstatic const short da850_evm_tl_user_led_pins[] = {
9 u' P! F' ^$ P; X  I        /* These pins are definition at <mach/mux.h> file */
7 N2 w- O" n* E3 j/ w. T$ M        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,+ e6 q) G' O" w3 c
        -1
- i! E% P" @2 [! J- g};
" X5 y- i% x  [
: W( W/ u6 C2 Q6 w% {static struct gpio_led da850_evm_tl_leds[] = {2 |" a: G4 m% D, C
        {
# j/ J( I: Z3 _8 f% p1 i3 ?: S* V                .active_low = 0,+ |+ K9 C& b( r- ]7 X1 e
                .gpio = DA850_USER_LED0,
; K; V- @. W" I5 y                .name = "user_led0",; o( O; w( d) x( Z* y. q1 m
                .default_trigger = "default-on",& G4 |% z& C# z; H, a! }  O" y" |# q
        },8 L) _+ D: m$ s% a. I6 A- e
        {
' k& B7 a* _9 ~6 r                .active_low = 0,0 H8 k4 r/ f7 J/ G  H0 m% C' p# F
                .gpio = DA850_USER_LED1,) j* X: x  K3 x& C  b% N5 Z0 X/ ~
                .name = "user_led1",
. z: S% L9 `$ Z' _, D8 A5 T/ M3 x                .default_trigger = "default-on",3 K% `* m. Y# G! d
        },
+ {- c0 z& G) W4 Z        {
% I* l* p# E: e/ j2 v                .active_low = 0,
1 O# Z0 ?! p4 R7 [9 C: W6 G3 ]                .gpio = DA850_USER_LED2,
  p) B$ w& |' |& M* M2 h                .name = "user_led2",3 b3 V% I* q+ E
                .default_trigger = "default-on"," p& A" m/ T% [# p! k
        },
% Z& e* z" ~" U% V5 o" Z; P        {
2 y4 ^* Y+ b; e2 M+ M  H2 f. J( t: L                .active_low = 0,% Z5 P4 w. V6 `- ^
                .gpio = DA850_USER_LED3,
% V$ T. P& {: C, Q+ ]2 t8 m) ]                .name = "user_led3",9 b. r/ _, W9 X4 ^, I. L9 S* l
                .default_trigger = "default-on",
  j& Y% k, e( k" {2 V% W7 I' ?0 v+ h        },7 S& h1 ?1 ?2 p* U4 i
};/ U. i, `- J. }) O
( ]- e) p& w3 R8 t3 E; M2 t% c" ^
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
% |2 N7 x$ O' m4 J; j$ d5 e% K7 L        .leds = da850_evm_tl_leds,
' A; o) v2 Z! q. m3 C. s* o        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),1 v2 b1 r, a* c; h- S
};8 w# S6 U# @6 L4 B6 ]

- h* b" s! e0 J- s. vstatic void led_dev_release(struct device *dev); ^$ \1 o% m* u* z  S3 B; P
{
) c3 u$ V) n& ~$ R8 }! F};
3 c+ [; S" x2 h. Y6 E' \" f
; s0 Y- @; z1 \static struct platform_device da850_evm_tl_leds_device = {( s) s6 j4 L2 Q. @3 H# }
        .name                = "leds-gpio",8 g! a& E; w- o% ]# K) c
        .id                = 1,
) E3 \4 B4 R% r9 \. e4 `( S7 A        .dev = {& x# D, v* j$ F# i* q: F  b
                .platform_data = &da850_evm_tl_leds_pdata,
( ^. h) Y" s8 B  l                .release = led_dev_release,
. M+ G7 G7 d1 _, g2 F7 |        }* ?  b+ D7 |: }2 }# F- j
};
6 f3 M* d' F  z( @" c$ h* [9 w0 Q0 l& C
static int __init led_platform_init(void)! i* ^9 `6 q# x& ]+ ?- L$ S1 e
{# G9 U" W- J" ]/ o
        int ret;
8 W2 R# v" c) g* M" {8 v#if 0
$ T+ e. p) G4 ?, K5 |0 t        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
; V9 t) S, k1 U$ a4 F& ?        if (ret)
5 q2 n4 b0 I$ ]2 u                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"6 K& R. q4 L/ V- \) m7 |
                                "%d\n", ret);& k/ Q: n* @! q& [% G: _( @& f  I, b/ j
#endif: E# l7 u( {, g2 w/ o6 P
        ret = platform_device_register(&da850_evm_tl_leds_device);- t' j% z/ l0 z3 z; K. B
        if (ret)7 {* P& e. @5 B) u2 N
                pr_warning("Could not register som GPIO expander LEDS");
. l# p0 t7 q& w4 k        else$ u7 Y' x+ B( h- Y1 e8 ?. ~- K
                printk(KERN_INFO "LED register sucessful!\n");" o5 z0 k2 e  \/ _
+ G! ?+ U+ Z  Q
        return ret;
+ g$ b' s) c5 y: A% Y0 V}
( A* R" M9 C& i
0 Y6 `8 g, M1 E* d! jstatic void __exit led_platform_exit(void), t" `0 L$ C) w" W9 F  I5 E: P, p
{
/ w5 d" `3 q- O% E        platform_device_unregister(&da850_evm_tl_leds_device);
9 M, Z" z$ a2 C4 p- U! g/ G8 b: E& R& x: N
        printk(KERN_INFO "LED unregister!\n");. v) r: A. G' Q. t+ y  G
}
% Z! @/ B* ~2 B: O8 p# k* s6 C8 j& i, x) w4 v6 {, ~
module_init(led_platform_init);" l9 Y- F$ d7 m
module_exit(led_platform_exit);& T$ H$ j- }: Y
6 E3 f+ ~+ u( a+ r% [  ?* y
MODULE_DESCRIPTION("Led platform driver");
9 ]% k: ^7 C2 ]& i+ t/ cMODULE_AUTHOR("Tronlong");
8 W0 L% `5 C. L; A7 XMODULE_LICENSE("GPL");9 Y+ K$ u) j+ ^4 t, m7 Z4 r
) e. v2 [# j7 V7 M5 g" L% ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-10 21:06 , Processed in 0.040010 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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