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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。3 _: B  E! E  b2 J1 i& I
#include <linux/init.h>
2 y1 C' O8 O" J5 E- z% ~* `, Z#include <linux/module.h>
' H, ]+ m$ p, Z9 p#include <linux/kernel.h>( y" t+ l. R+ p3 i6 G0 l
#include <linux/types.h>
5 _+ n  C% w# c2 G#include <linux/gpio.h>
4 g3 H5 w3 {* e& A: p) s( j#include <linux/leds.h>
4 c* }: Q5 M5 |8 F" S1 G( R#include <linux/platform_device.h>
5 H6 e5 ~' t0 L1 t9 m
* |$ }: F/ F  f- Z#include <asm/mach-types.h>3 _. D& w; Y2 h' A
#include <asm/mach/arch.h>
2 s3 J8 S$ @. d$ I2 l/ M8 T#include <mach/da8xx.h>
% R) m1 q3 `0 t+ J#include <mach/mux.h>
8 v4 P$ a: ~7 F- A6 D
* ?( @& n& [1 W, F; M#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)/ X/ @; X  b; p# V# p
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
% K2 c, }: T& F! G0 m- @( N+ S#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
5 p% d9 J* }' @- q9 T, z8 P#define DA850_USER_LED3        GPIO_TO_PIN(0, 2), ?9 b. l: T4 u4 K9 r! |, L

7 ?6 q6 i8 {7 l5 y8 p/* assign the tl som board LED-GPIOs*/
, D3 f, \- r# ustatic const short da850_evm_tl_user_led_pins[] = {
8 T) H" ^0 x: @. U        /* These pins are definition at <mach/mux.h> file */" B6 e4 b1 q' J
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
  u- h: N( @# v+ a; R: ~        -1' L# i( A1 X( R
};
! x' w$ X7 B& O2 i8 A# X/ W
% _  ?5 T7 A' P/ i1 ystatic struct gpio_led da850_evm_tl_leds[] = {8 U+ J- m, ?% i1 L" l3 o
        {8 f& @+ D- G! N! O
                .active_low = 0,
* r- H3 }2 ~; S: T2 D                .gpio = DA850_USER_LED0," }% s& q  Q& H; n; V
                .name = "user_led0",
/ S: w6 z* Q5 }: s* u  t, I: U                .default_trigger = "default-on",/ R* j3 }" i: ?+ J6 a
        },  r4 u1 _- j" h0 v9 o
        {" ?7 \! s3 E- z# \" ^' o
                .active_low = 0,9 O: c/ c: E1 b: c
                .gpio = DA850_USER_LED1,
4 D. J; C. |2 F5 {* O( n1 U# P                .name = "user_led1",- D. W! f; o5 [) r' q9 A
                .default_trigger = "default-on",
; ]5 ~" ?% h# W# _4 l        },8 Q& y( B9 C2 w6 f8 z# s  L! B/ y1 i
        {5 A; W8 V6 c8 i3 I; y5 |8 {- ~$ c
                .active_low = 0,
+ z. S* S6 r2 u: ?* D# \                .gpio = DA850_USER_LED2,4 y$ U( k; d# `  g& k$ \8 L
                .name = "user_led2",
+ Z* Z) x. Z9 b+ \1 p  I                .default_trigger = "default-on",
6 |4 n# d1 _$ H9 p6 Y5 i+ Q        },
2 t! s+ k& L& A        {
( _( L* A( t0 X0 i0 `5 b1 H                .active_low = 0,
  c2 \; |9 \4 O( _) k                .gpio = DA850_USER_LED3,
, b8 k9 f% y8 S+ Q+ Q5 Q                .name = "user_led3",
. Y/ n1 d$ O! X4 B- b7 S. d                .default_trigger = "default-on",
+ C& N+ C! J- s! _  J6 n        },1 w  M; r% s- \8 Y8 Z
};
# m( R6 f/ k0 z+ m" ^; e% ]. t. s9 F9 B6 J
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
% ]0 {( S* ?2 k: U' b        .leds = da850_evm_tl_leds,
, V% [7 Z& c  ~& `: w        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
1 U7 H7 n1 s4 {2 L' a0 ~};
! C( t9 h- H9 z( n( k/ r1 s  ?3 X' n3 L$ {5 q7 \$ s) s  w
static void led_dev_release(struct device *dev)
1 m7 a# L5 E( g{' R/ }! A# E2 y, J9 B
};
+ d/ x( ^" z: R. s+ l  e, a+ `
  J) h) Y6 g4 Z4 u' fstatic struct platform_device da850_evm_tl_leds_device = {
0 l1 t4 \! ]' Q2 L- p: ~$ J        .name                = "leds-gpio",# i9 {* c5 \# y
        .id                = 1,: F2 }6 H1 |8 z. r
        .dev = {5 {! ^) \. S/ N3 Z! J; v9 I
                .platform_data = &da850_evm_tl_leds_pdata,
0 X  N  K. l8 V8 N                .release = led_dev_release,
* [5 E8 J; ^0 u8 Q: r2 C0 W. D        }4 m$ n% s+ p, H* D4 O
};
, B9 |% t, ~, P- Y+ D- F
& n% J8 @' M5 e& W$ Jstatic int __init led_platform_init(void)6 j3 L5 k  Q; ?5 p' `8 f0 K1 Y
{) r7 U3 q. D1 l$ C
        int ret;
; C# n7 u: _% J6 S6 B#if 0
& z0 `- Z1 c# e$ K) y- A        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);4 m' e/ _7 ~  r1 p
        if (ret)
$ G3 K8 e4 G# Z3 `                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
; Q8 ], [' q: P1 @9 q: U, U                                "%d\n", ret);3 l+ t  z3 W& t
#endif9 K! J" D- [: O  s4 J- B
        ret = platform_device_register(&da850_evm_tl_leds_device);
5 |# u" g. E! D% G9 p        if (ret)9 o7 h3 [& s9 S  `& a# R0 x
                pr_warning("Could not register som GPIO expander LEDS");
; X! ?' X8 }6 f6 y5 {        else
; j( g, S. ~' c; a8 s$ K                printk(KERN_INFO "LED register sucessful!\n");
( B. d% |+ p! ]) P' S% l* N' d7 O
        return ret;
' S' Q6 b/ z' }6 u6 U}
. \8 _+ b4 U3 P. R' z0 D' a
/ o) Y$ c: J6 V8 i7 D! L" Sstatic void __exit led_platform_exit(void)* v2 D# K. F. `. J$ {( t5 H) W
{
: y1 @' A7 A: V# U, A2 c0 t. _        platform_device_unregister(&da850_evm_tl_leds_device);7 f. h$ W  V3 a) k% t+ a$ G" {- h6 M

- u0 V3 U' k3 G( I& Q3 P        printk(KERN_INFO "LED unregister!\n");
, h9 Q1 i0 f+ e2 A8 c}
& I$ A5 `  w5 f' f2 I7 F8 l' F/ G
module_init(led_platform_init);
. D8 S" o) Y* f. s: `" \+ Omodule_exit(led_platform_exit);7 h+ f* x5 [( B9 `

  f) X" K% G, O! @/ n$ zMODULE_DESCRIPTION("Led platform driver");
5 `! K- I7 W% m( \3 NMODULE_AUTHOR("Tronlong");
2 e& p8 H9 h7 Y4 bMODULE_LICENSE("GPL");& z$ K' z5 r( i0 S$ O. v2 W

4 [% I$ O2 }$ I: e  {* s! d* p3 d
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-9-10 12:56 , Processed in 0.039547 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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