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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。- C* q) r9 n- {2 m/ H; v) J
#include <linux/init.h>. \0 b+ i% F8 m. j; M8 l9 c& ]+ h
#include <linux/module.h>
4 q; c; m7 f, p5 K4 O% x& H4 |#include <linux/kernel.h>/ P& m: F( r. f
#include <linux/types.h>
- J- V; x* b& |0 u7 r3 M9 h, g' u#include <linux/gpio.h>+ v1 I5 p0 w( A, l0 z: ?9 x- p; c; |
#include <linux/leds.h>1 {  I2 ^" a" b' W
#include <linux/platform_device.h>5 |( o: ?  n% o/ W
* ?) r. r# m, P0 L; S" P/ d/ s
#include <asm/mach-types.h>5 R/ z4 G( \% g6 [8 z
#include <asm/mach/arch.h>
& b$ W* e0 q- |9 c( P#include <mach/da8xx.h>
* R& F/ T/ i7 v+ b8 \#include <mach/mux.h>; r  l+ @; m6 |! I- x1 h. m

& u6 c8 B. v9 Q* r" }- u* ~* f#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)  S% E7 e) w  M  N% p
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)7 s  v. h2 H8 c; ~+ k
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
7 a+ t) H5 x  v5 W/ X' v4 e#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
. \# `- L" A: R* Q: \! o4 c( ?2 t3 p1 c( |) T. K+ `# o2 I( t: k( Y
/* assign the tl som board LED-GPIOs*/
4 e  T# [+ c. B0 g* |1 }7 {# @2 Xstatic const short da850_evm_tl_user_led_pins[] = {8 p3 X2 c" b' d; p4 T/ u
        /* These pins are definition at <mach/mux.h> file */& ?7 Z: D; x+ T- a4 K+ p9 u
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
/ y* ^( `1 t6 |5 T        -1
( [4 d1 S$ L5 V6 |};! ?! m3 W% A6 j# M
3 m% ^) {& h+ T
static struct gpio_led da850_evm_tl_leds[] = {
+ h. ^  W( y4 ~9 o7 s        {% `6 Q4 H- ?) ]. }* X
                .active_low = 0,( Q$ l- m' q/ Q, G" l
                .gpio = DA850_USER_LED0,, U2 U$ @, r; G4 ?
                .name = "user_led0",
, H6 p4 B) z! d- ]7 |) `! |5 M& n                .default_trigger = "default-on",% `" _5 B, y/ A+ `9 }# x
        },
/ R8 Z+ m# C7 R, f        {
5 E6 p  N& O" M5 e: L                .active_low = 0,
8 n+ W( ]* `$ |$ S& D                .gpio = DA850_USER_LED1," i1 D* g2 W2 g3 `: h
                .name = "user_led1",6 x6 \- k) ^9 a) g
                .default_trigger = "default-on",( {  C1 j* I, P& p" n
        },
% r. T  o1 ^- N, e2 V8 B        {+ w5 k* i# g+ V/ r0 Q. \' k0 u
                .active_low = 0,
/ m& L2 }& `# f                .gpio = DA850_USER_LED2,
: [5 G3 P- j% {+ Z+ @* y& M: E                .name = "user_led2",
& N) _/ i% ?5 g0 X                .default_trigger = "default-on",
! n9 s4 c( E: y  Q9 m' e- h+ h        },
* ]# `8 B. i' `: t' N! }        {
4 h' [; `1 s% q: s                .active_low = 0,$ `* i# K; E& n8 R  h! O. Y
                .gpio = DA850_USER_LED3,
6 c1 s8 ?  S$ s/ b6 A                .name = "user_led3",- Z: v- d6 p) A; L4 Z/ n
                .default_trigger = "default-on",
$ Y0 F& ?$ E/ N9 n6 k) p8 t! i9 e        },# H- L; B# Z7 k$ v) [: Q" _
};
  h/ p4 y  c8 X2 L* [
3 V: F( `' {+ f: Q& @static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
5 _! w, K. U9 ]9 J: b2 t+ ]: w        .leds = da850_evm_tl_leds," c% W5 _, G3 @. @# T
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),' Z' X1 f1 I  P4 o; s1 I  s0 X
};" b, z$ K  w2 |# s" ^
& u- S& Z- T% p7 T9 l! G0 P
static void led_dev_release(struct device *dev)
5 D! v& q0 a- Q0 P{
, d1 X8 F! P8 m, A9 I+ M};
8 m. }! _- r! k" k8 Y
  N, m/ I. x8 S' c% G/ G( \static struct platform_device da850_evm_tl_leds_device = {
$ E* x; M" ^/ h        .name                = "leds-gpio",
  H  }4 m) `1 y: D! l7 R. T        .id                = 1,
  E& V5 [- @& X7 s0 U9 S, g/ r        .dev = {
0 Y' B' B! I) R& \0 {7 _4 {! ~                .platform_data = &da850_evm_tl_leds_pdata,- j4 E% g) z8 f7 F
                .release = led_dev_release,; }  D# E8 y  B$ K( \; Q7 R6 j; x
        }
$ ^1 N; c$ j" }1 l6 ~' s+ e};
" G2 N2 O* T  d* m+ }9 J1 }( \) u$ W& k1 Z& p. Y4 n
static int __init led_platform_init(void)( t8 |1 Y/ ^9 }6 L7 ^0 P
{  d! A; U' J4 @) ~" e1 M( _! l
        int ret;2 l/ x6 y$ K! a" F; i
#if 00 _2 ]- {1 d' Z/ T! X
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
3 P1 c; R9 v5 y3 V, Q  [% q* U        if (ret)
) f# a1 \, r% H8 L3 K# D8 l0 z                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"8 _, _% x7 T! r4 A
                                "%d\n", ret);
3 u/ Q% m# H8 @#endif
# u0 ]  K8 A; [  |7 j* \        ret = platform_device_register(&da850_evm_tl_leds_device);
" b' R# Z1 {5 D7 x0 H- S6 r/ I        if (ret)
/ ^( Z0 z+ W+ G* k                pr_warning("Could not register som GPIO expander LEDS");: [  l  F; R! u  f3 ^
        else
9 _8 w1 f* ]& ^5 H( L. f$ N8 K1 X8 f                printk(KERN_INFO "LED register sucessful!\n");, D' Y# |6 ]: z$ @" F; R

/ D9 |$ Z) R5 v8 m7 q, ^; T7 ?        return ret;4 i: m3 Y6 l3 W6 k; S* e
}
* R4 a. J% R+ S6 E) ?- K& X& r: }
/ q+ W8 M: Q+ n4 V8 R" S: Bstatic void __exit led_platform_exit(void)+ L* q7 `6 |# W0 I2 P
{
) J( K% o! W  d- W  `2 t4 g        platform_device_unregister(&da850_evm_tl_leds_device);
+ U, f1 U6 A/ I- q
; k/ q  W$ n+ F        printk(KERN_INFO "LED unregister!\n");
4 _7 {2 }) \% _) N}
  u7 `& {+ r& @) G/ S( O) O) A
3 x7 M8 y  D; p9 N: |module_init(led_platform_init);) ?+ g0 z7 p% |9 i5 R2 h* o( Y
module_exit(led_platform_exit);9 Z6 A' x5 R. Z

3 N) G* O1 _0 dMODULE_DESCRIPTION("Led platform driver");1 v* q6 G+ n6 _- [8 B
MODULE_AUTHOR("Tronlong");
! H9 c/ I# I$ `7 rMODULE_LICENSE("GPL");
7 H1 |8 z1 o  \/ K( V- G3 b5 m/ `' Y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-2 00:44 , Processed in 0.039842 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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