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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。  _# r% ]' Y6 H# T9 e! H
#include <linux/init.h>' h+ ?1 {: ~) Q# i
#include <linux/module.h>
$ H7 h  s/ W- K  h- @; [; t- J#include <linux/kernel.h>0 s$ M5 @" x8 Z7 V' P) [
#include <linux/types.h>9 q# l! B- x" T5 p7 A
#include <linux/gpio.h>
$ ^. y4 f: v8 J  P; p$ F/ A, I2 `#include <linux/leds.h>1 u) q' K9 G7 y- |! ?- y+ K; R
#include <linux/platform_device.h>1 p" g- p  d# H0 Q' [7 c; O

, H" ^- x$ I9 F. k; t# W& y#include <asm/mach-types.h>& K! n* u" V' A# U: Y
#include <asm/mach/arch.h>( P: Z  k( W" \
#include <mach/da8xx.h>( D" J" V; r( F9 N) W
#include <mach/mux.h>
2 j; N6 Z' @$ b2 T! K7 [
1 ?9 d, j% q2 C# _1 i- A1 V#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
, R; w7 i) Y& P% j#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)% n  @2 m7 j3 {; y+ J) E
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
! t. c7 O/ I8 L2 N- D6 e/ J#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
% Q! z1 v( T2 }3 a5 H) b% f8 q. P% |9 Q& U/ ]$ L  @$ Q
/* assign the tl som board LED-GPIOs*/
, A1 }1 Q) C8 \& ystatic const short da850_evm_tl_user_led_pins[] = {3 h$ v" R0 O8 t& H( j9 J) N6 R7 b
        /* These pins are definition at <mach/mux.h> file */2 |" l+ h& e1 M$ _! D- e! f
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
2 t# ?+ g0 H8 d& j: d        -1( _0 G# t6 ~1 u/ ^+ ?$ s
};
, v- h7 Z, N! W- |' g2 s! Y2 W
. M  o( K' |) O: r& t5 Y5 ?static struct gpio_led da850_evm_tl_leds[] = {) P- f! a' U% z4 G. k
        {
0 ^! J( S$ \* a( x3 S& A                .active_low = 0,$ O5 n# Q0 N5 ~% d
                .gpio = DA850_USER_LED0,* e9 S1 `/ ]( O+ q$ C& k% k
                .name = "user_led0",
) q) m" P, X$ ]+ V                .default_trigger = "default-on",
* A7 B  X0 @! f2 U        },# k- w; Q5 G- J# M- I
        {
- X/ C+ E2 z8 ?7 g9 a6 n, x( _                .active_low = 0,
% V% d/ h" r1 ]7 J3 U% S7 L                .gpio = DA850_USER_LED1,8 o7 A* d& Z8 O* H
                .name = "user_led1",* D% V7 j) {  i! O0 n+ j: L
                .default_trigger = "default-on",4 A: ]# A9 `) x' N8 I
        }," m1 D% K  ]8 N) A2 Y
        {' v7 w6 T. T) T- }- ^( l) i
                .active_low = 0,
) F% l4 N4 h$ D1 R! a+ v) L                .gpio = DA850_USER_LED2,9 Z/ k6 q+ x! i
                .name = "user_led2",% ~1 H2 h1 S# N! k; A! r
                .default_trigger = "default-on",
  Y& |0 ~3 Q, P. X# ~  r        },
; s$ a7 O& {: ?; T* I        {
$ r9 F6 P: v5 Q3 i                .active_low = 0,
( Y8 f0 x4 T  p) V4 p                .gpio = DA850_USER_LED3,; f+ J% J4 @  _1 {2 u* g7 k
                .name = "user_led3",
  ?1 V7 s6 C9 g& F' |                .default_trigger = "default-on",
5 ]1 w6 j; G! G- a$ k& v        },* d! X; a/ z( o$ m
};
: M4 D& e' j7 P; |6 s2 I  A- p' z0 {
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
' {6 g0 [+ c& f4 c, _        .leds = da850_evm_tl_leds,
( l/ ~5 F. r4 I& Z* \        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
# {( o5 c& B2 E- W9 c};' [2 n# ]9 t- Y! b$ X8 V1 w# m3 I2 z

' q8 i% f0 Q9 A* F/ Q0 a( e+ E& ]static void led_dev_release(struct device *dev)# ]4 `5 w6 U+ j. A' r! _
{' u8 _/ f2 k' i6 i
};7 T2 y% K% o: w
& U- C6 H! x6 k, l8 o
static struct platform_device da850_evm_tl_leds_device = {3 l# a0 G) s2 G" Y
        .name                = "leds-gpio",1 w0 l% q. |! D+ i4 h  T
        .id                = 1,
; ~* o4 o$ W; J! C4 p+ v1 y        .dev = {
- g4 p' o6 m0 F, L- B                .platform_data = &da850_evm_tl_leds_pdata,4 m' p" n2 K9 y5 m8 T
                .release = led_dev_release,
  `( v0 P! h1 }# H" X9 Z( z" J& }        }$ H1 E2 n; y! e# Q* E
};/ P- n' u6 U6 r# P/ w0 |

! Y: B9 P, p9 S9 h" {) D0 pstatic int __init led_platform_init(void)- h8 s4 w1 j3 q: S. m9 ]  o0 h9 Z6 W6 w
{
; k& x4 `0 b! i2 _8 ]- B% ]" T        int ret;7 o1 P' j3 u6 C' `" ]
#if 0
0 [2 {* ^% y5 Q0 b% [  c" v        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
  K3 Q+ y3 |1 j/ X        if (ret)' v0 h" I% p/ u" |0 I8 |
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
1 k1 d! E5 r0 @( ?& V                                "%d\n", ret);
, J: K) V# T3 k8 ^/ a#endif
1 P3 ?+ X  D) E7 f  ^- W        ret = platform_device_register(&da850_evm_tl_leds_device);
' [, c7 U' |4 O- Z6 B' n+ T) |7 P. D* U        if (ret)
; a$ I5 S/ A/ N                pr_warning("Could not register som GPIO expander LEDS");
' K  E+ _( p' e0 h' g- Y, {        else
" z. z. C6 Z: v8 q                printk(KERN_INFO "LED register sucessful!\n");; A# n3 }2 S! B+ i& R5 p/ y, g
4 D' ]( V- ?3 f5 J5 ]/ ?; F
        return ret;
1 @  K$ q; j8 }' s}* e- S) {/ U: @4 t. e; s
% Q. J0 M$ ?8 l7 ^, j, @' v
static void __exit led_platform_exit(void)# @' @  W1 Z  o
{4 e: t7 ^( ?% f, L
        platform_device_unregister(&da850_evm_tl_leds_device);0 e: s0 `" f# l/ ^. o  b& V! X& h
* A' g# v% e$ h4 ~
        printk(KERN_INFO "LED unregister!\n");% p8 H8 g! R' G. D. O
}- G# x3 G& X# x! _8 P- u9 ^

7 z  }0 _" ~5 C; }module_init(led_platform_init);
3 x( A* i* u$ ymodule_exit(led_platform_exit);
4 ^+ ?& N' v' }2 H' Z4 j# P) n" d$ p' h5 O  y+ Q6 I
MODULE_DESCRIPTION("Led platform driver");
3 W% ?: Z; Y- U9 n# Q6 r4 eMODULE_AUTHOR("Tronlong");
1 j& z3 K! U" |8 r4 ^MODULE_LICENSE("GPL");
* Y  }& ~, @5 V$ x; g. }9 V: D& z+ o) v% |, T2 b
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-11 08:07 , Processed in 0.038683 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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