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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。* T  x- N4 F4 G; Z# Q2 z
#include <linux/init.h>
, u2 r" n6 R( z+ F9 v#include <linux/module.h>  A: ~4 s0 k) O+ `$ q5 T
#include <linux/kernel.h>
& P$ ?7 ~# V) P  e3 R2 Q, Q* @#include <linux/types.h>
( X2 |' T) ^+ f' E8 _* \6 o#include <linux/gpio.h>% I& \* e; x/ S% F
#include <linux/leds.h>
9 O( k1 q' u/ {2 j, Q' ?#include <linux/platform_device.h>2 _" I# y3 @# a; I* X
& T4 ~& n. x: \& K, H& ^
#include <asm/mach-types.h>
: {$ r. @! L# V% x6 u' A0 m#include <asm/mach/arch.h>$ }2 [. Y6 ?. O0 x
#include <mach/da8xx.h>4 c' \. W9 ~$ \  Y6 O* _
#include <mach/mux.h>
$ b$ p8 h! k" A" W: R* r& I% _& c: `5 h! n' o
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
: N* d9 ~1 x6 d#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)1 B, e- u: n' l4 k! ?( @" ]
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)% L3 o3 e0 a8 [' B# p* i/ ^2 j- F
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
5 J8 e: v/ k' ]# z+ `; \) q9 v
" q# w+ f! U. O. |$ v3 F0 M9 V% q/* assign the tl som board LED-GPIOs*/; c1 h( @. K9 L9 ]2 n: w
static const short da850_evm_tl_user_led_pins[] = {
9 k5 c, }  z# r$ y" N* n        /* These pins are definition at <mach/mux.h> file */
1 A& _; K7 ~! ?, j( ?' F5 w        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,- }+ s3 L! }. k+ d: M
        -1  o( Q! I6 `) B+ A" E* V# U
};4 q" D; P$ a6 p+ L6 n

7 L3 F3 ?- V! J+ \: X' h* Z. l0 sstatic struct gpio_led da850_evm_tl_leds[] = {/ R0 |+ N. Y: }
        {8 Y' B' ^3 X! m: |" q* ~
                .active_low = 0,
' r0 j+ ^" g! i5 l$ a6 E. u                .gpio = DA850_USER_LED0,
/ y' c8 S5 p# H  a) m                .name = "user_led0",# h3 w" C- W; X; c
                .default_trigger = "default-on",! _6 O2 V# {1 P  k+ A" h) N  W
        },( e4 P5 E1 \& ?9 p
        {+ K  g6 Q. q  Z1 n5 s& a
                .active_low = 0,
) d5 D* ?$ f, Y  G1 [3 |) }                .gpio = DA850_USER_LED1,' ~2 q% R+ h5 A! Y- \% R, O& F5 d; f
                .name = "user_led1",5 @2 \. p5 ^# ]
                .default_trigger = "default-on",
2 `' A1 h7 _( N7 ?        },
2 p  h( [* o$ H' Q( m8 v        {
7 e/ Y; b2 E( \8 R: ^8 T$ ~                .active_low = 0,
" F( g0 u  [$ a5 f0 Y  L                .gpio = DA850_USER_LED2,/ O$ r  E  j6 W9 ^' b7 k: k, x
                .name = "user_led2",+ g+ {+ |8 ]2 \4 o
                .default_trigger = "default-on",. c: I* V, p2 r1 U! ^
        },
4 }% D) E/ K, i0 A$ v        {
1 G" w: q5 h# p+ Y" [7 M% v5 P% `+ E                .active_low = 0,
) Q3 z) H7 L/ p: ?  \9 f                .gpio = DA850_USER_LED3,
/ V* u$ _- j! k$ n- L+ S3 K+ L                .name = "user_led3",; f2 l) h7 `6 u+ M# Q" t1 Y: B
                .default_trigger = "default-on",
. o( A2 B8 D4 U4 E. _6 {        },1 z1 O! ?* L; }2 e9 F2 r# V1 A
};
$ ~. Z1 v* U! Y# ?5 T1 \( V* {! j6 \+ O3 u# R% c" i1 c
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
2 K' }- T1 G4 K6 |3 t7 `; ^8 s" b        .leds = da850_evm_tl_leds,
* e1 n5 Z  S' Y" g        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),4 j+ @. g, M$ O# ~% I5 ^  {. A) x0 `6 O$ {
};+ v; G3 {4 r  U9 ~
$ Y2 O9 X/ ?3 ^" {. @- u6 g
static void led_dev_release(struct device *dev)
. R+ g" V  f9 M/ W" H{
! F  c0 B9 O" d0 {};' j, w1 L+ K  \" N- Y1 U
7 |! A% D8 ~( r0 g9 H4 B7 |
static struct platform_device da850_evm_tl_leds_device = {
( y* h, {% Z9 T1 K$ d        .name                = "leds-gpio",4 ~7 K( l  h" @6 l8 ~& c
        .id                = 1,1 f9 Q6 s( G/ {) v1 {  k! O
        .dev = {  y* ]  W& q9 }6 D/ S2 I) X) S
                .platform_data = &da850_evm_tl_leds_pdata,
/ h; V$ a" u1 @6 l                .release = led_dev_release,
+ B7 c& Z; n& L& q6 h* {- E* K        }
3 b' Q9 [& j6 {9 j1 q};
1 E1 l) M* x( z% f: K. X; |& `* i: x& d; V2 L' G
static int __init led_platform_init(void)0 y1 c( t* V! G7 B# E
{
6 v2 P$ I2 ~. {! H8 o        int ret;
0 v! ~& n  I1 e( E# d#if 0
5 C+ B' b& u8 ~% P( J7 L$ E        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);: N7 `9 [. O0 N  z
        if (ret)
; S8 [2 s7 Q& d$ ^3 s                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"' S8 `: B3 v  ^& X9 U+ ~& I
                                "%d\n", ret);4 d0 ?+ H) Z  a6 X8 m
#endif9 X3 k; Q. m" h) d$ g# w
        ret = platform_device_register(&da850_evm_tl_leds_device);/ {8 _+ {/ f- s  }- G/ x
        if (ret)
- \% \& ]5 N1 q) `" S                pr_warning("Could not register som GPIO expander LEDS");5 [$ F8 J/ U( S  h( k$ ^: g
        else4 K6 _. i1 T! t
                printk(KERN_INFO "LED register sucessful!\n");- ~- V! v2 E5 Z* U
7 k, V+ B' |% R$ [" H6 w
        return ret;6 F/ o6 L5 \2 ^0 M: r( k0 ~8 D" u
}
8 J: A. U& f& X1 m
! x- f3 U2 o9 ^% E% q: zstatic void __exit led_platform_exit(void)8 Q  {6 k( `9 Q8 D+ k3 X' B
{
2 x! u0 B" V3 Q  K$ r, a  e5 l        platform_device_unregister(&da850_evm_tl_leds_device);
- D3 v0 I4 i2 g# @& d8 O$ ]# k$ M+ S
! v; v( M6 b; [  T  g" [) Z4 P        printk(KERN_INFO "LED unregister!\n");
+ P! g9 y- r: M' V}2 J5 P# \8 }2 y7 p

( D" y8 g* H5 V1 J+ C% umodule_init(led_platform_init);$ h6 o0 W# W/ t; S9 ^; O& T$ n
module_exit(led_platform_exit);- z" c7 {9 C' G' t6 _

. ]7 j. j8 p& b3 B8 A4 q( jMODULE_DESCRIPTION("Led platform driver");
  D+ @9 ^% ^1 P* p3 XMODULE_AUTHOR("Tronlong");
' x, r( y" x& j' v5 ~$ \. UMODULE_LICENSE("GPL");
, p" R6 x' f% x, s
$ J8 h# P. P/ R, S! F
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-18 18:17 , Processed in 0.040381 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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